手机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语音应答(一)

相关推荐
Manny11222 小时前
手机躺玩电脑GalGame是什么体验?
智能手机
wanhengidc3 小时前
云手机就是虚拟机吗?
运维·网络·安全·智能手机
mg6683 小时前
安卓玩机工具----安卓“搞机工具箱”最新版 控制手机的玩机工具
android·智能手机
wanhengidc4 小时前
使用云手机能否给企业降本增效
运维·网络·科技·游戏·智能手机
点灯小铭16 小时前
基于STM32单片机的智能粮仓温湿度检测蓝牙手机APP设计
stm32·单片机·智能手机·毕业设计·课程设计
双翌视觉16 小时前
机器视觉的手机柔性屏贴合应用
智能手机·自动化·视觉检测·机器视觉
chinesegf16 小时前
手机能看、投屏 / 车机不能看与反向链接验证类似吗?
智能手机
wanhengidc18 小时前
云手机运行流畅,秒开不卡顿
运维·网络·科技·游戏·智能手机
wanhengidc1 天前
什么是云手机?
运维·网络·安全·游戏·智能手机
bst@微胖子1 天前
WGAI项目图像视频语音识别功能
人工智能·语音识别·xcode