手机SIM卡打电话时识别对方按下的DTMF按键(二)

手机SIM卡打电话时识别对方按下的DTMF按键(二)

--本地AI电话机器人

  • 前言

书接上篇,在上一篇章《手机打电话时如何识别对方按下的DTMF按键的字符》中,我们从理论的角度来论述了DTMF的频率组成。并尝试使用400Kb左右的【TarsosDSP-Android-2.4.jar】第三方库进行FFT(傅里叶变换)运算,以提取对方通话语音中掺杂的DTMF按键的字符(术语叫"DTMF解码")。

本篇章中,我们将这个DTMF解码器的功能,整合到蓝牙电话SDK,并在其示例app的界面中展示DTMF字符的内容。使SIM卡电话通话时(来电或手机拨打出去)均可在界面中能正常查看到通话的目标手机按下的DTMF按键的字符内容。

蓝牙电话SDK示例app的下载路径为:

拨号器 SDK示例apphttp://120.78.211.195:8060/sdk/SdkDemo.apk

USB蓝牙配件购买路径 (参考):https://item.taobao.com/item.htm?_u=pk10l4ccbcd&id=649368472986

  • 通话语音传输路径

蓝牙电话SDK方案中采用外置USB蓝牙配件的方式,拦截手机SIM卡通话的语音和通话事件,并将语音数据上抛给【手机App】进行处理,如下图右侧所示。

DTMF解码器是整合到手机App中的一个纯软件模块,它通过读取通话时的语音,对语音进行FFT运算后,识别其低频和高频的数值进行对应的查表匹对,从而检测出DTMF按键值的功能。

实现DTMF解码的前提条件是手机App能够实时获取得到SIM卡通话的原始PCM语音数据,这个也是本篇内容为何要基于【蓝牙电话SDK】做进一步加工的原因。(因为只有挂载了该SDK的普通安卓App并插入USB蓝牙,才能拦截电话通话的声音)

  • SDK示例App界面

由于蓝牙电话SDK依赖一个外置的USB蓝牙的手机配件,对于手机App来说,插入和不插入该USB配件,在App界面上应需要做出区分。

App主界面的中部区域,增设了【USB蓝牙信息】的显示区域。未插入USB蓝牙时这个区域是隐藏的,插入【vid=0x0a12 pid=0x0001】的USB设备后App会弹出USB授权提示框(这个是Android的授权机制),如下图所示:

弹框后会依次进行蓝牙【配对-连接】等操作,手机App通过USB接口操控外置USB蓝牙进行各种绑定、连接、数据收发等业务和数据控制操作。外置USB蓝牙和手机连接成功后,界面标注黄色会消失。此时,表明手机中电话通话的拦截效果开始生效。

  • 通话对方DTMF识别与界面显示

示例App界面中,【功能设置】区域底部增设了"对方按下DTMF按键"的显示区域,如下图右侧界面所示。

当电话通话时(手机来电或手机拨打出去),当对方的手机 通过其电话软键盘按下对应的DTMF字符时,蓝牙电话SDK示例App的界面会实时的显示对方按下的DTMF按键值。供后续基于这个SDK开发的应用根据这个DTMF交互按键来进行各种IVR语音导航或进一步的增值扩展操作。

  • 总结

本来上一篇《手机打电话时如何识别对方按下的DTMF按键的字符》当中的内容已经足够描述功能和场景了。但是后来想一想,毕竟识别出DTMF的字符后,直接打印到Android的Logcat日志里面毕竟不直观。干脆就上抛到手机界面上,进行实时的显示和变更,也方便用户和使用者进行校对和分析。

附注:蓝牙电话SDK示例App其实是开放源代码的。有兴趣的读者或朋友,其实可以获取App最新的源代码,自己解析、优化、以及在这个基础之上扩展出更多的自己关于电话通话方面的新能力。

最后,放上一段即兴录制的视频,展示了【来电自动接听】和【实时解码DTMF】功能的大致操作效果,如下视频所示:

SIM卡打电话时识别对方按下的DTMF按键


上一篇:手机打电话时电脑坐席同时收听对方说话并插入IVR预录声音片段

下一篇:手机打电话时由对方DTMF响应切换多级IVR语音应答(一)

相关推荐
音元系统2 小时前
现行析音法
语音识别·语音合成·输入法·语音分析·语音系统
小咖自动剪辑5 小时前
自动批量混剪视频软件配置流程
实时互动·音视频·语音识别·实时音视频·视频编解码
飞睿科技6 小时前
ESP Audio Effects音频库迎来专业升级,v1.2.0 新增动态控制核心
人工智能·物联网·ffmpeg·智能家居·语音识别·乐鑫科技·esp
wanhengidc7 小时前
云手机存在哪些技术瓶颈
运维·服务器·安全·智能手机·生活
Ki138110 小时前
树莓派5:使用SenseVoice进行语音识别
语音识别·树莓派
阿乔外贸日记10 小时前
爱尔兰公司后续维护
大数据·人工智能·智能手机·云计算·汽车
wanhengidc11 小时前
云手机 实体手机的云端延伸
运维·服务器·科技·智能手机·云计算
千里马学框架11 小时前
AI豆包手机权限文章补充:Mainfest中某个权限的protectionLevel具体是如何被系统定义的?
android·智能手机·framework·权限·protectionlevel
TheNextByte112 小时前
如何将HTC手机中的短信传输到电脑?
智能手机·电脑
suki_lynn12 小时前
云手机自动化是什么?2025 年行业真实现状
智能手机