何辉 2019-07-15
最近小编与中科院的同学吃饭的时候,偶然讲起来他最近的一个项目就是利用语音识别的技术和聊天机器人来实现人机交互,简而言之就是我们说话,程序识别出来我们讲的是什么,然后通过聊天机器人跟我们实现交流。我感到非常的有意思,于是决定简单实现一下,跟大家一起来学习一下。
01.使用模块
本次项目主要用到了三个主要的模块,分别为:
有了三个主要模块的简短介绍,下面介绍一下程序的设计流程。
首先是利用speech_recognition来进行语音的录入,程序如下:
上面的程序中,我们首先调用电脑的麦克风,然后获取音频数据后,将我们的数据保存到根目录下的recording.wav文件中。运行上述程序后,我们只需要确保我们电脑的麦克风正常工作,就可以实现录音的功能。但是注意的是该录音有时间的限制,需要我们尽可能的快速反应,否则就不会录到大家优美的声音啦。
录制好我们的音频数据后,接下来就是调用百度的语音识别API,我们首先要去百度的语音技术开发平台下创建一个语音识别的应用。链接如下:
https://console.bce.baidu.com/ai/?fromai=1#/ai/speech/app/create
创建好之后,我们会得到对应的AppID、API Key和Secret Key。如下图所示:
02.进行语音识别
接下来我们按照平台给出的教程来实现语音识别,并转换为文字返回给我们,程序如下图所示。
该平台下不仅仅支持普通话的识别,而且还支持英语,粤语和四川话的识别。小编尝试了一下英语,效果也非常的不错。至于粤语和四川话,小编确实是不会,所以就没有加以尝试,如果小伙伴有兴趣的话,可以自行进行尝试。
下面的链接给出了平台的python的接口函数,详细的参数大家可以进行参阅。
http://ai.baidu.com/docs#/ASR-Online-Python-SDK/top
03.智能聊天
最后便是利用智能机器人来进行聊天。为了给大家创造最好的,最方便的聊天程序和聊天环境,小编为大家精心对比了三款在线的聊天机器人。有图灵机器人、小i机器人和青云客提供的在线机器人接口。其中图灵机器人的效果应该是最为出色的,但是要花钱包月,而小i机器人的连接也时断时续,所以小编挑选了青云客提供的在线机器人。效果也非常不错。该部分的程序如下图所示。
最终,小编将三个程序块组合到一起,得到下面的测试结果。