Packages
membrane_rtp_plugin
0.26.0
0.31.5
0.31.4
0.31.3
0.31.2
0.31.1
0.31.0
0.30.0
0.29.1
0.29.0
0.28.0
0.27.1
0.27.0
0.26.0
0.25.0
0.24.1
0.24.0
0.23.2
0.23.1
0.23.0
0.22.1
0.22.0
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.0
0.15.0-rc.1
0.14.0
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.1-alpha.3
0.7.1-alpha.2
0.7.0-alpha.2
0.7.0-alpha.1
0.7.0-alpha
0.6.1
0.6.0
0.5.1
0.5.0
0.4.0-alpha
Membrane Multimedia Framework plugin for RTP
Current section
Files
Jump to
Current section
Files
lib/membrane/rtp/vad/vad_params.ex
defmodule Membrane.RTP.Vad.VadParams do
@moduledoc false
# The information about selected parameters used in multiple modules concerning VAD.
# Additionally it computes the `target_levels_length` which is the number audio levels needed for proper voice activity estimation. It is directly dependent on the VAD parameters.
# The parameters values are different for each environment and can be tweaked in the configuration files placed in `config` directory.
# The meaning of the parameters is described in the `Membrane.RTP.Vad.IsSpeakingEstimator`.
@default_parameters %{
immediate: %{
subunits: 1,
score_threshold: 0,
lambda: 1
},
medium: %{
subunits: 10,
score_threshold: 20,
subunit_threshold: 1,
lambda: 24
},
long: %{
subunits: 7,
score_threshold: 20,
subunit_threshold: 3,
lambda: 47
}
}
@params Application.compile_env(
:membrane_rtp_plugin,
:vad_estimation_parameters,
@default_parameters
)
@immediate @params.immediate
@medium @params.medium
@long @params.long
@spec vad_params() :: map()
def vad_params(), do: @params
@spec immediate() :: map()
def immediate(), do: @immediate
@spec medium() :: map()
def medium(), do: @medium
@spec long() :: map()
def long(), do: @long
@spec target_levels_length() :: pos_integer()
def target_levels_length(), do: @immediate.subunits * @medium.subunits * @long.subunits
end