app_confbridge: Update dsp_silence_threshold and dsp_talking_threshold docs.

The dsp_talking_threshold does not represent time in milliseconds.  It
represents the average magnitude per sample in the audio packets.  This is
what the DSP uses to determine if a packet is silence or talking/noise.

Change-Id: If6f939c100eb92a5ac6c21236559018eeaf58443
This commit is contained in:
Richard Mudgett
2018-01-30 15:00:32 -06:00
parent 6c5e3226ec
commit b9024197ab
7 changed files with 151 additions and 110 deletions

View File

@@ -144,72 +144,66 @@
</para></description>
</configOption>
<configOption name="dsp_silence_threshold">
<synopsis>The number of milliseconds of detected silence necessary to trigger silence detection</synopsis>
<description><para>
The time in milliseconds of sound falling within the what
the dsp has established as baseline silence before a user
is considered be silent. This value affects several
operations and should not be changed unless the impact
on call quality is fully understood.</para>
<para>What this value affects internally:</para>
<para>
1. When talk detection AMI events are enabled, this value
<synopsis>The number of milliseconds of silence necessary to declare talking stopped.</synopsis>
<description>
<para>The time in milliseconds of sound falling below the
<replaceable>dsp_talking_threshold</replaceable> option when
a user is considered to stop talking. This value affects several
operations and should not be changed unless the impact on call
quality is fully understood.
</para>
<para>What this value affects internally:
</para>
<para>1. When talk detection AMI events are enabled, this value
determines when the user has stopped talking after a
period of talking. If this value is set too low
AMI events indicating the user has stopped talking
may get falsely sent out when the user briefly pauses
during mid sentence.
</para>
<para>
2. The <replaceable>drop_silence</replaceable> option depends on this value to
determine when the user's audio should begin to be
dropped from the conference bridge after the user
</para>
<para>2. The <replaceable>drop_silence</replaceable> option
depends on this value to determine when the user's audio should
begin to be dropped from the conference bridge after the user
stops talking. If this value is set too low the user's
audio stream may sound choppy to the other participants.
This is caused by the user transitioning constantly from
silence to talking during mid sentence.
</para>
<para>
The best way to approach this option is to set it slightly above
the maximum amount of ms of silence a user may generate during
natural speech.
</para>
<para>By default this value is 2500ms. Valid values are 1 through 2^31.</para>
audio stream may sound choppy to the other participants. This
is caused by the user transitioning constantly from silence to
talking during mid sentence.
</para>
<para>The best way to approach this option is to set it slightly
above the maximum amount of milliseconds of silence a user may
generate during natural speech.
</para>
<para>Valid values are 1 through 2^31.</para>
</description>
</configOption>
<configOption name="dsp_talking_threshold">
<synopsis>The number of milliseconds of detected non-silence necessary to triger talk detection</synopsis>
<description><para>
The time in milliseconds of sound above what the dsp has
established as base line silence for a user before a user
is considered to be talking. This value affects several
operations and should not be changed unless the impact on
call quality is fully understood.</para>
<para>
What this value affects internally:
<synopsis>Average magnitude threshold to determine talking.</synopsis>
<description>
<para>The minimum average magnitude per sample in a frame
for the DSP to consider talking/noise present. A value below
this level is considered silence. This value affects several
operations and should not be changed unless the impact on call
quality is fully understood.
</para>
<para>
1. Audio is only mixed out of a user's incoming audio stream
if talking is detected. If this value is set too
loose the user will hear themselves briefly each
time they begin talking until the dsp has time to
establish that they are in fact talking.
<para>What this value affects internally:
</para>
<para>
2. When talk detection AMI events are enabled, this value
<para>1. Audio is only mixed out of a user's incoming audio
stream if talking is detected. If this value is set too
high the user will hear himself talking.
</para>
<para>2. When talk detection AMI events are enabled, this value
determines when talking has begun which results in
an AMI event to fire. If this value is set too tight
an AMI event to fire. If this value is set too low
AMI events may be falsely triggered by variants in
room noise.
</para>
<para>
3. The <replaceable>drop_silence</replaceable> option depends on this value to determine
when the user's audio should be mixed into the bridge
after periods of silence. If this value is too loose
the beginning of a user's speech will get cut off as they
transition from silence to talking.
<para>3. The <replaceable>drop_silence</replaceable> option
depends on this value to determine when the user's audio should
be mixed into the bridge after periods of silence. If this value
is too high the user's speech will get discarded as they will
be considered silent.
</para>
<para>By default this value is 160 ms. Valid values are 1 through 2^31</para>
<para>Valid values are 1 through 2^15.</para>
</description>
</configOption>
<configOption name="jitterbuffer">
@@ -1479,7 +1473,7 @@ static char *handle_cli_confbridge_show_user_profile(struct ast_cli_entry *e, in
"enabled" : "disabled");
ast_cli(a->fd,"Silence Threshold: %ums\n",
u_profile.silence_threshold);
ast_cli(a->fd,"Talking Threshold: %ums\n",
ast_cli(a->fd,"Talking Threshold: %u\n",
u_profile.talking_threshold);
ast_cli(a->fd,"Denoise: %s\n",
u_profile.flags & USER_OPT_DENOISE ?

View File

@@ -41,7 +41,10 @@
#define DEFAULT_BRIDGE_PROFILE "default_bridge"
#define DEFAULT_MENU_PROFILE "default_menu"
/*! Default minimum average magnitude threshold to determine talking by the DSP. */
#define DEFAULT_TALKING_THRESHOLD 160
/*! Default time in ms of silence necessary to declare talking stopped by the bridge. */
#define DEFAULT_SILENCE_THRESHOLD 2500
enum user_profile_flags {
@@ -140,9 +143,9 @@ struct user_profile {
char announcement[PATH_MAX];
unsigned int flags;
unsigned int announce_user_count_all_after;
/*! The time in ms of talking before a user is considered to be talking by the dsp. */
/*! Minimum average magnitude threshold to determine talking by the DSP. */
unsigned int talking_threshold;
/*! The time in ms of silence before a user is considered to be silent by the dsp. */
/*! Time in ms of silence necessary to declare talking stopped by the bridge. */
unsigned int silence_threshold;
/*! The time in ms the user may stay in the confbridge */
unsigned int timeout;