星号答录机检测 [英] Asterisk Answering Machine Detection
问题描述
我的答录机检测将答录机检测为人类.我在播放消息之前先播放了7秒钟的铃声,它只是提示用户按一个键,然后处理AMD
My Answering Machine Dectection detects answering machine as a Human.I have a ringtone of 7 seconds playing before playing the message, it just prompts for user to press a key , then process AMD
这是我的AMD.conf
here is my AMD.conf
;
; Answering Machine Detection Configuration
;
[general]
initial_silence = 2250 ; Maximum silence duration before the greeting.
; If exceeded then MACHINE.
greeting = 1500 ; Maximum length of a greeting. If exceeded then MACHINE.
after_greeting_silence = 1250 ; Silence after detecting a greeting.
; If exceeded then HUMAN
total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide
; on a HUMAN or MACHINE
min_word_length = 100 ; Minimum duration of Voice to considered as a word
between_words_silence = 50 ; Minimum duration of silence after a word to consider
; the audio what follows as a new word
;maximum_number_of_words = 3 ; Maximum number of words in the greeting.
maximum_number_of_words = 8 ; Maximum number of words in the greeting.
; If exceeded then MACHINE
silence_threshold = 256
在我的日志中,当我将其转到语音邮件时,这就是我看到的内容:
and in my logs this is what I see, when I let it go to voicemail:
-- AMD: initialSilence [2250] greeting [1500] afterGreetingSilence [1250] totalAnalysisTime [5000] minimumWordLength [100] betweenWordsSilence [50] maximumNumberOfWords [8] silenceThreshold [256]
-- AMD: Word detected. iWordsCount:1
-- AMD: Changed state to STATE_IN_SILENCE
-- AMD: Word detected. iWordsCount:2
-- AMD: Changed state to STATE_IN_SILENCE
-- AMD: Word detected. iWordsCount:3
-- AMD: Changed state to STATE_IN_SILENCE
-- AMD: Word detected. iWordsCount:4
-- AMD: Changed state to STATE_IN_SILENCE
-- AMD: HUMAN: silenceDuration:1260 afterGreetingSilence:1250
-- Executing [s@play-message-list:16] NoOp("SIP/xxxx.com_xxxx", ""AMD STATUS IS :"HUMAN"...CAUSE:"HUMAN-1260-1250") in new stack
它可以在没有铃声的情况下正常工作,语音邮件会保留下来.
It works without the ringtone , the voicemail is left.
推荐答案
不幸的是,应答机检测不是一门精确的科学,而是很多猜测.结果在很大程度上取决于答录机的问候语以及随机的人接听电话的方式.人们通常在拿起电话后只说几句话,例如你好"或这就是约翰",而自动系统(语音邮件或ACD)会在接听电话后立即说出完整的问候.因此,像给我发消息哔哔"之类的语音邮件问候语很可能会被检测为人,而真正的服务员会回答早上好,谢谢您致电ACME Inc,我可以打给你电话吗?"可能会被检测为机器.
Unfortunately, answering machine detection is not exact science, but a lot of guessing. The results vary largely depending on the answering machine greetings, and on the way random people answer their phones. A human usually only says a few words after picking up the phone, like "hello", or "this is John", whereas an automated system (voicemail or ACD) will say a whole greeting immediately after answering. Therefore, a voicemail greeting like "Hi, leave me a message beep" has all chances to be detected as a human, whereas a real attendant answering with "Good morning, thank you for calling ACME Inc, how may i direct your call?" will probably get detected as a machine.
您的通话流程或AMD设置没有任何问题.在您的日志中,看起来人为"的决定是基于以下事实:仅检测到4个单词,然后沉默1250秒钟以上,并且基于after_greeting_silence设置触发了该决定算法.现在想象一下一个语音邮件问候,它缓慢地说:您好,感谢您的呼叫.[2s暂停].没有人可以接听您的电话...",依此类推.您的设置将无法正确检测到这种特殊情况.但是正如我最初所说,没有通用"设置可以解释这个世界上的任何问候和人为回答模式.
There's nothing wrong with your call flow or AMD settings. In your log, it looks like the "human" decision was made on the fact that there were only 4 words detected, followed by a silence of over 1250s, and the decision algorithm triggered based on the after_greeting_silence setting. Now imagine a voicemail greeting that says, slowly, "Hello, thanks for calling. [2s pause]. There is no one available to pick your call..." and so on. This particular case will not be detected properly with your settings. But as i said initially, there are no "universal" settings that can account for any greeting and human answering pattern in this world.
这篇关于星号答录机检测的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!