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

相关推荐
lovep110 小时前
CLAP文本-音频基础模型: LEARNING AUDIO CONCEPTS FROM NATURAL LANGUAGE SUPERVISION
音视频·语音识别·多模态模型·音频识别·基础模型
开开心心_Every16 小时前
多线程语音识别工具
javascript·人工智能·ocr·excel·语音识别·symfony
go546315846519 小时前
基于分组规则的Excel数据分组优化系统设计与实现
人工智能·学习·生成对抗网络·数学建模·语音识别
音元系统1 天前
五度标调法调域统计分析工具
语言模型·自然语言处理·语音识别·输入法·语音分类
go54631584651 天前
中文语音识别与偏误检测系统开发
开发语言·人工智能·学习·生成对抗网络·数学建模·语音识别
倒悬于世2 天前
开源的语音合成大模型-Cosyvoice使用介绍
人工智能·python·语音识别
Digitally3 天前
如何将荣耀手机的照片传输到 Mac
macos·智能手机
yzpyzp3 天前
Android 的16 KB内存页设备需要硬件支持吗,还是只需要手机升级到Android15系统就可以
android·智能手机
速易达网络3 天前
旧手机部署轻量级服务器
运维·服务器·智能手机
Blossom.1183 天前
基于深度学习的图像分类:使用预训练模型进行迁移学习
人工智能·深度学习·目标检测·分类·音视频·语音识别·迁移学习