搞一个实时语音QA应用
徐静
过年假期时自家玩过几天QA,本身打算用深度学习的方法(例如seq2seq)去做,后边为了省事换成了调API接口。然后调用百度或科大讯飞的语音识别的API进行语音识别,左后调用离线或百度的API做TTS,当然你也可以使用科大讯飞。如果企业级的应用还是需要购买他们的服务的。我们捋一捋国内外做语音识别和TTS比较牛叉的几个大厂子,然后带着大家捋一捋语音QA应用程序的开发的整个流程,附上最终做成的产品。
最终实现了, 实时聊天机器人,下一步要做的是使用深度学习训练基于催收场景的机器人,同时可以替换其他文本QA。
语音识别
- 将人类语言转化为文本的技术
- 智能机器人的必备技能
- 机器学习,深度学习的一种应用
- 离线语音识别:sphinx,windows
- 云语音识别:百度,科大讯飞,苹果,谷歌(墙外)
- 在线语音识别的精度远高于离线语音识别
- 百度,讯飞等提供的离线语音识别,实际上还是需要网络,需要与云服务器通讯的
百度云语音:http://yuyin.baidu.com/:免费接口目前支持普通话,英文,粤语,四川话,默认创建应用,日可调用50000次,可以申请增额调用无限次,准确率OK。提供了移动端SDK和REST API的方式调用,有比较详细的java,C++,Python的调用demo。如果有更多参数和更准确的要求的话,需要找百度谈一下。良心之作。
科大讯飞:科大讯飞,识别率高,支持方言(超赞)每天500次免费调用,可以申请提高配额20000,和支持的语音。超过部分收费,目前国内专业做语音识别和TTS的大厂,听说和中科院有合作。
苹果:谁也不知道他怎么搞的,有独立的硬件和软件体系,需要深挖
Google:需要翻墙,Google一直是这方面的强者
Sphinx: 李开复的博士毕业论文,好像不支持中文
windows: 微软在windows系统下都自带了语音合成和识别的功能(没用过)
本项目均采用了REST API的调用方式,SDK同样支持Python(官方有详细Demo和REST API很相似),本项目中使用多线程实时语音转文本,调用了免费的百度和科大讯飞的API,中间做了一些降噪和静音识别的工作,感觉效果还OK。
语音合成
- TTS,从文本合成语音,语音识别的逆过程
- 离线,在线
- 应用场景广泛:提款机,智能客服,语音导航,智能玩具。。。
- 现代语音合成能够合成特定音色的语音,例如林志玲导航,郭德纲导航等等
离线语音合成:
- 现代操作系统多数集成了离线TTS引擎
- 离线TTS引擎提供男女声,可以调节语速。
- 能够调节的参数和合成质量比在线合成差
- Windows,Linux,android,mac os,ios
在线语音合成:
- 科大讯飞
- 四位发音人可选,提供嵌入式Linux平台可执行文件(树莓派)
- 每天500次免费调用,超过部分收费
- 百度语音
- 男女两位发音人,音调可调(变声)
- 免费,无限次调用
- 苹果
- 我们从来不知道他们是怎么做到
- 谷歌
- 免费,但是要翻山越岭
本项目采用了百度云语音和windows自带的TTS方法,Win10现在做的很牛逼,不过仅提供了一个发声人。百度调节的参数非常多,但是win10的调用中参数的实现非常少。
自己动手开发实时语音QA应用
基于PyQt实现了实时语音转文本和语音识别,并调用了图灵API实现QA系统,经过调研可以使用深度学习的办法训练基于特殊场景的QA系统,现在在研究。这个已经是成品了。