搞一个实时语音QA应用

搞一个实时语音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系统,现在在研究。这个已经是成品了。

Author face

徐静

数据科学从业者,算法工程师. 善于用数据科学的工具透析业务,模型的线上化部署,网络爬虫及前端可视化. 喜欢研究机器学习,深度学习及相关软件实现.目前自己还是小白一个,希望多多学习.

最近发表的文章