手机打电话时由对方DTMF响应切换多级IVR语音应答(一)
手机打电话时由对方DTMF响应切换多级IVR语音应答(一)
--本地AI电话机器人
- 一、前言
经前面的系列篇章中,我们实现了拦截手机打电话的声音、根据通话对方声音提取DTMF字符。由此,我们通往AI电话机器人的道路就畅通无阻了。
如果说AI电话机器人是“全自动步枪”,那么现在成熟和大规模商用的【多级IVR语音导航】则可以看作是“半自动步枪”。虽然灵活性和智能化程度并没有AI电话机器人那么先进,但也不会被看作“智障通话”。
在本篇及后面的几篇,我们将针对多级IVR语音导航的功能,规划出一个可用的界面及操作App出来,使同一个用户,名下所有的手机,都能使用同一套多级IVR语音来进行单机化的部署。(会不会把它引导到云平台上,然后用多并发的方式来实现更加容易?但这个不是本次主题讨论的范畴,我们默认就已经具备了这个云平台功能,本次只讨论单机版)
另外,在后续的规划中,由于电话和短信基本是不分家的。后续我们估计会花费一些篇幅的内容,分析和实现Android场景下SDK是直接使用【读取缓存短信+接收广播通知】来收发短信更靠谱?或是使用蓝牙的MAP/OBEX协议来收发短信更加靠谱?
并尝试将它们都整合到拨号器SDK中,供有需要的用户进行远程群发和调用。
- 二、多级IVR语音导航功能探讨
正常的IVR语音导航应该会存在一个简短的开场白(当然也可以没有),用于播放类似现在虚拟小号接通后首先播放的“温馨提示,来电启用隐私保护”等6秒提示音。
开场白完毕后才进入主要语音菜单,提示按1转归属地、按2转10086、按0转人工等等。
按下不同的DTMF按键后,按话术和功能的不同,将调用不同的网络接口进行查询,并将结果转为TTS语音播放。
在次级IVR菜单中,可以通过按#号键返回上一级菜单。
对于未设置的DTMF按键菜单,将提示按键错误,然后将本层的IVR菜单的语音重新播放一遍。
在IVR语音导航中,可以设置超时定时器,当一段时间用户没有操作则返回上一级菜单或结束通话。
以上的功能和操作方式只是初步设想,但我想,现在IVR语音导航已经做得这么完善,有空找一个或几个标准话术,根据这些来设计IVR语音导航和语音编辑界面即可。这种功能复杂度和风险都不大。
- 三、同用户多个手机设备之间同步IVR语料
说实在的,如果是云平台这种“中心计算”的模式,根本不用考虑IVR逻辑和语料的同步问题(唯一只需要考虑多并发和高并发的问题即可)。
但由于我们现在采用“边缘计算”的方式,所有的业务逻辑都放入手机App中进行。这样的话,就不得不考虑如何做到一次录入,多台手机设备都能拉取已编辑好的语料的问题。
在规划中,我们将采取数据集中存储、推送同步的方式来进行多级IVR语料的数据共享,减轻操作人员的操作复杂度。
- 四、对IVR和对方DTMF交互结果的上传汇总
此部分功能和要主动拨打哪些电话类似,拨号器SDK暂时不考虑这方面的业务逻辑。具体实现将交由上层App来进行实现。拨号器SDK仅作为一个软件模块嵌入到App,协同App进行工作即可。
此部分的逻辑,或许可以参照主动拨打外呼的电话号码列表的操作方式,用户可以自由选择从App调用拨号器SDK进行拨打、也可直接tel://10086进行拨打,或者通过电脑ADB连接手机并通过ADB下发呼叫号码等方式来拨打,甚至人工用手在手机拨号盘中点击拨打。这些操作和事件触发,均不会影响拨号器SDK对通话状态和通话语音数据的拦截效果。
- 五、总结
从本篇开始,我们尝试花费一些篇幅来实现一套从手机本地,用普通的App实现AI电话机器人和多级IVR语音导航的功能。并对其实现原理和展示效果进行一定的探讨。
本质上,我们仍然希望像智能拨号器App这种“打通局域网和电话网之间最后一公里”的现象级应用,能获得更丰富、更繁荣的应用,能服务更多有需要的人群。
上一篇:手机SIM卡打电话时识别对方按下的DTMF按键(二)
下一篇:编写中。