cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
11852
Views
4
Helpful
0
Comments
ROBERT LAPP
Community Member

 

Algorithm Description

 

The algorithm relies on the length of the salutation and the silence or lack thereof which follows the salutation. For example, a person typically answers the phone with a simple "Hello" followed by a period of silence. They may also have a slightly longer greeting such as "Hello, Johnson residence" followed by a period of silence. Answering machines typically have much longer greetings with no long periods of silence such as "Hello, you've reached the Miller's residence, please leave a message after the beep."

 

Using a short time energy function, the algorithm determines when a person is speaking and when they have transitioned to silence and makes a determination as to whether the called party is a live person or an answering machine.

 

The short time zero crossing rate is used to determine if the energy detected is speech or a sinusoidal tone (or a pair of tones such as with DTMF). The AMD algorithm will reject tones and not mistake them for possible speech. This is necessary because some answering machines may begin their message with a tone. Also, the Telezapper type products are now frequently used to attempt to fool predictive dialers by playing 1 or a series of tones (reorder tone) before either the answering machine or the person picks up. This algorithm needs to reject those tones and listen only for speech.

 

Due to the nature of the detection process described here, it should be noted that the detection rate is not and can never be 100%. Answering machine messages can be very diverse, may include music or other noise, etc. all effecting the algorithm and its decision making process.

Dialer CPA Registry Keys That Impact AMD Behavior

Registry Key Recommended Value (units) Default Value (units) Definition

CPAMinSilencePeriod375 (ms)608 (ms)Amount of time that the signal must be silent after speech detection to declare a live voice.
CPAAnalysisPeriod2500 (ms)1592 (ms)Amount of time (from the moment the system first detects speech) that analysis will be performed on the input audio.
CPAMaxTimeAnalysis3000 (ms)8000 (ms)The period in which CPAAnalysisPeriod must start and stop or voice will be declared.  This timer starts at off-hook.
CPAMaxTermToneAnalysis12000 (ms)30000 (ms)This is the amount of time the algorithm will look for a terminating "beep" once the algorithm has detected an answering machine.

 

Other Dialer CPA Registry Keys

Registry Key Recommended Value (units) Default Value (units) Definition

CPANoiseThresholdPeriod100 (ms)32 (ms)Amount of time that the CPA algorithm uses to compute the noise floor.
CPAMinimumValidSpeechTime112 (ms)112 (ms)Amount of time that energy must be active before declared speech. Anything less is considered a glitch.
CPAMinimumValidSpeechTime112 (ms)112 (ms)Amount of time that energy must be active before declared speech. Anything less is considered a glitch.
CPAMaxNoiseFloor1000010000Noise threshold limit.  Not allowed to exceed 10000
CPAMinNoiseFloor10001000Noise threshold limit.  Not allowed to be less than 1000
CPAJitterBufferDelay150 (ms)100 (ms)Jitter buffer delay
CPAActiveThreshold32 (dB)32 dBSignal must exceed CPAActiveThreshold*noiseThreshold to be considered active. For example 32 is 10 * log(32) = 15 dB

 

Examples

 


AMD_Example_1.gif

 

Notes:

 

1. CPAMaxTimeAnalysis starts at off-hook detection.

2. Once the AMD algorithm declares live voice the call is transferred to the route point.

3. CPAMaxTimeAnalysis is moot once voice is detected

 

 

AMD_Example_2.gif

 

Notes:

 

1. Algorithm declares answering machine because after voice detection, there were no periods of silence of at least CPAMinSilencePeriod in length.

2. If no beep is detected during CPAMaxTermToneAnalysis period then call is transferred at end of period.

3. Algorithm will declare Answering machine and start looking for beep once CPAAnalysisPeriod has expired.

4. CPAMaxTimeAnalysis is moot once voice is detected.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: