文章目录
[隐藏]

1 前言

最近比较闲,简单了解了一下微信小程序开发,想着空闲时自己动手也写一个可以陪人聊天的小程序,后来发现类似的小程序已经有好几款了,而且做的都还不错。聊天机器人的好几年前就有了,但最近貌似又开始火热起来了,上次在车库咖啡听百度UNIT分享时,分享嘉宾说目前语音需求远大于图像处理,当时还有点不敢相信,但下面的常见场景大家都不陌生,可见语音到底有多火:

  • 百度AI发布了DuerOS,”小度小度”的唤醒语火遍了朋友圈
  • 微信和输入法中语音输入真是方便,再也不用担心妈妈不会打字了
  • 龙泉寺的贤二机器人居然会跟大师探讨佛法、诵读经文,惊!
  • 好友群中多了一个聊天机器人,比如QQ小冰(2854196306),@她后可以陪聊,天知道未来哪天我是在跟谁聊天
  • DevOps方兴未艾,ChatOps产品却开始崭露头角,运维人员真是越来越懒了,命令都懒得敲了
  • ……

大牛们总是敢为人先,好几年前都已经DIY出来一个能够红外识别人的聊天机器人,电梯直达。汗~,原来自己已经早早落伍啦,现在也利用Python玩玩大神的山寨版聊天机器人。

拼装一个聊天机器人竟然如次简单,你只需要:

语音交互的典型流程:用户说话–>录音–>百度语音识别为文字–>发送文字给图灵机器人–>处理图灵机器人回复文字结果–>将结果文字合成语音–>播放语音给用户。

2 服务调用

(1) 百度语音

百度语音可以调用REST服务,也可以本地安装一个客户端,具体参考开发文档。

https://ai.baidu.com/docs#/ASR-API/top

https://ai.baidu.com/docs#/TTS-API/top

这里选择安装Python SDK的方式进行:

 

语音合成及语音识别baidu_asr.py:

注:语音合成中,per参数为发音人选择,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫。

(2)图灵机器人

图灵机器人使用还是挺多的,试用版仅支持文字机器人,可以快速接入微信公众号/微信号/QQ,贤二机器僧公众号估计也是这样做的,接入微信公众号,可以自动文字回复呦,见下图:

服务调用也非常简单,具体查看官方文档:

http://www.tuling123.com/help/h_cent_webapi.jhtml?nav=doc

curl调用示例:

Python客户端示例bot_1.py:

3 机器人对聊

起两个图灵机器人客户端(bot_1.py&bot_2.py),让两个机器人对聊,哈哈,好无聊

加上语音合成,语音播放,这播放声音使用了pygame模块,需要提前安装:

语音对聊模式:

看看俩二货的聊天记录,也是醉了~

结果生成一堆语音片段,现在将这些片段合成一个mp3文件,这里利用pydub库进行合并,首先安装该库:

然后下载ffmpeg.exe到指定目录,合成脚本sound_composition.py如下:

语音结果文件如下(语速略慢,太傻了):

4 朗读机器人

利用百度语音合成,进行网页中文本的朗读,这里选择左岸读书的文章《你还没有成功?是不是太努力了?》

提前网页内容,语音合成代码及朗读代码如下:

本例机器人朗读:

对比一下Talking Web机器人朗读:

再对比下人工朗读:

不难发现,机器人虽然很厉害,但与人的差距还很远,播音主持专业暂时是安全的,哈哈!

5 参考文档

http://www.codexiu.cn/python/blog/15810/

http://www.tuling123.com/help/h_cent_webapi.jhtml?nav=doc

https://gist.github.com/yangshaoshun/982722287ee2ee57ecec5372eeb7fc32

http://www.debugrun.com/a/e24n1ug.html

6 源码

https://github.com/zjmeixinyanzhi/python-chat-bot