如何在Twilio的Android SDK中检测DTMF音

时间:2019-05-19 12:11:48

标签: android sdk twilio dtmf

我正在使用Android上的Twilio语音SDK来发起对普通电话号码的呼叫。

我需要能够从发起呼叫的应用程序中检测到电话上的人按下了键盘键之一。

我在Voice SDK中找不到对应的对象来调用.sendDigits()来检测DTMF音。

我尝试了几种方法,正在考虑第三种方法:

  1. 最明显的方法是找到一个api调用,用于将侦听器注册为DTMF或将侦听器注册为Digits,但我找不到一个。
    注意:在我的测试中,我注意到当我将DTMF铃声从手机发送到android设备时,我可以听到android设备中的缩写铃声,因此Twilio似乎正在处理这些铃声和让他们浏览它们的修改版本。

  2. 第二种方法是找到一个可以检测音频流中音调的库,我发现了一些指向Goertzel算法的帖子。我发现了一个库(TarsosDSP),该库实现了该算法并且似乎易于使用。但是,我无法弄清楚如何从twilio呼叫中获取音频流。

  3. 第三种方法(我还没有尝试过,因为它似乎太笨拙了……但是我可能会感到绝望了)是使用twiml来检测twilio服务器上的音调(使用Gather动词)。我将需要弄清楚如何让twilio监听正在进行的对话,然后弄清楚twiml一旦检测到DTMF,如何向我的android设备发送信号。

Twilio似乎确实具有一种在SDK中注册DTMF音的侦听器的机制,而我只是不在正确的位置寻找……这将是最佳解决方案。

0 个答案:

没有答案