最近公司接手到了一个有挑战的项目,很有意思,拿出来和大家分享下,交流下开发过程中的一些收获和感悟。
原委是这样的,有一个大佬,手里有好多好多,总之就是好多手机充x卡,他想把这些充x卡充值到不同的用户手机号里。有的朋友接触过的,会说“可以和移动去谈,然后搞到移动的接口,根据接口开发程序,然后把充x卡密码都弄进数据库里,用程序读取,之后调用移动接口完成充值。” 说得好,漂亮!而且充x卡密码存到数据库里面这件事,大佬已经找人没日没夜加班干活全都录入到数据库里了。
但是事实很悲催,由于各种原因,不能通过移动的接口来做。只能通过1xx86语音电话来做。于是有了这个项目需求。
需求也不复杂,就是需要一个电话机器人,来模拟人工,拨打电话,根据对方说的内容,按对应按键进入指定菜单或者输入一些数据(例如:手机号码、充x卡密码),最后也是最关键的,需要识别出对方说的提示,是成功还是失败来确定操作是否成功,并将操作结果记录在数据库中。
根据上述的需求,我发现有两个问题是比较重要的:
针对这两个技术问题,我做了一下技术调查,问题1,用什么设备与1xx86交互?
最开始想到的是语音IVR,做了一些调查,但是发现这个东西不是我们需要的。IVR的主要功能是作为一个语音电话的"Server",也就是被叫方,用户拨号进来,IVR播放语音给用户听,然后根据用户的按键实现不同的操作。
也就是说IVR是作为被叫方,做应答的。这显然不是我们需要的,我们需要的是作为"Client",也就是主叫方,去主动拨打1xx86的,然后按键选择不同菜单,或者输入手机号等等信息,不需要播放语音,也不需要识别按键。我们需要的是能够拨号,能够进行按键操作。
综上所述,IVR被PASS。
之后,又想到了一种方案,那就是Modem!!!
什么?你想到了那个会吱吱乱叫的老式拨号56k猫?没错,不过我需要的是一个支持AT命令的可编程Modem.去网上搜了一下,还真有卖这种设备的,他们称之为 工业Modem.
说做就做,果断找到销售,购买了一个工业Modem。东西很不起眼,一个铁盒子,上面插口不少:电源AC,串口RS232,话筒MIC,喇叭SPK,电话机PHONE,电话线LINE。
我需要的有串口RS232,喇叭SPK,电话线LINE.
用一根音频线连接Modem的喇叭SPK口和PC机的声卡线路输入LINE IN接口,(这里注意,一定是线路输入LINE IN,不能使用麦克风MIC接口,麦克风接口由于阻抗不匹配,导致接受到的音质非常差,不能使用)
用串口线连接Modem的串口和PC机的串口.
把电话线插在Modem的LINE口上.
接下来打开Modem的电源,用SecureCRT连接串口,敲入些AT命令,看看Modem能否执行.
好,做到这里硬件上的准备工作就算做完了.
PS:未完待续
智能电话机器人,使用Microsoft语音识别技术(Speech sdk),布布扣,bubuko.com
智能电话机器人,使用Microsoft语音识别技术(Speech sdk)
原文:http://www.cnblogs.com/lqopr/p/3736845.html