用Twilio回答机器检测(AMD)..但事后

时间:2014-09-22 19:12:34

标签: python twilio audio-analysis

问题

想要检测来电是否被人或机器接听。

详细

使用Twilio。 Twilio确实有这个功能。但是,它在系统中的实现方式似乎不适合我的用例。

Twilio使用应答机检测来控制通话流量。因此,Twilio在呼叫连接后等待几秒钟,以便分析来自呼叫的音频,看它是否是应答机。在延迟通话并执行此分析之前,它不会继续连接通话。

对于我的用例。通过人或机器应答呼叫的天气不会影响呼叫流程...因此不需要延迟。它仅影响以后需要的统计信息。即在这种情况下"我付钱接听电话的人多久经常接听电话,而不是错过电话并让它转到语音信箱?"

所有来电都会转发到手机。通常是手机。

问题

有没有办法检测到身份后人员或机器应答了呼叫,但使用Twilio没有延迟?

如果没有,是否还有其他我没有想到的模式可以用来实现同样的目标? (检测员工接听电话的频率而不是丢失电话)

我考虑过的其他事情

  • 延长手机上的响铃次数,然后让Twilio接收语音信箱而不是手机提供商的语音信箱。
    • 此解决方案的问题在于,许多手机提供商不允许您更改手机在语音邮件启动之前响铃的次数。更难的是没有设置环的数量。手机提供商可能会花费更多或更少的时间来定位手机,这可以计算手机在转到语音邮件之前响铃的时间。
  • 在我自己的应用程序中实现应答机检测(Python)
    • 这可能是一个可行的选择。这里的问题是我很少知道如何使用Python来分析音频文件,看它听起来像个人还是机器。

1 个答案:

答案 0 :(得分:4)

首先介绍如何使用呼叫进度分析(CPA)来检测应答机。答案机没有标准,因此没有一致的检测方法。所有系统都使用CPA来检测电话应答时的语音时长。只有" Hello"典型的人才会回答,而答疑机会有更长的问候语。 CPA只是在呼叫开始时查找语音的长度,如果它超过某个阈值,则它假设一个应答机。有些人还可以检测应答机在留言时给出的嘟嘟声,但是再次没有用于哔哔声的标准音,所以它也可能不一致。

我的观点是,没有一个系统在检测语音邮件系统方面有100%的准确性,有些人甚至试图通过简单地放置" Hello"作为他们对语音邮件的问候。如果您想要准确性,您可以在开始时提供一个需要DTMF响应的简单提示。如果它转到语音邮件,系统将无法使用DTMF输入进行响应,因此您知道1)您有语音邮件系统,或2)您有一个没有响应的人。听起来在您的业务案例中,它有利于用户做出响应,因此他们会这样做。如果某些系统需要通过让用户输入识别特定人的PIN来识别特定人员,则会更进一步。

我不认为你可以在Twilio之后做检测。如果你真的需要这个,我会使用Call Control XML (CCXML)VoiceXML。使用CCXML后事实并非如此,它并行发生。当您的VoiceXML应用程序运行时,CCXML可以继续在执行CPA的后台运行。您甚至可以从CCXML向其他Web服务发送消息,以便在语音应用程序继续运行时更新后台CPA的进度。 Voxeo有很好的CCXML实现。他们的首席技术官是W3C标准的主编。他们的CPA实施也是我用过的最好的一些。他们对应答机的检测是最好的,通常甚至可以捕获哔哔声。 Voxeo的CCXML在线文档有good description on implementing answering machine detection