Py学习  »  Python

只需三步,菜鸟也能用Python做一个简易版Siri

菜鸟学Python • 4 年前 • 268 次点击  


当下,各个手机厂商都陆续的推出了属于自己的智能手机机器人,像是苹果的Siri,小米的小爱,还有等等。这些智能机器人不仅仅方便了我们对于手机的使用,更能和我们实现交流的功能,如此吸引人的机器人,我们为何不用python来实现一下。


今天小编就带领大家实现一个简易版的Siri,实现与我们交互的功能,我们只需要输入语音,程序就会生成回答播放出来。


那么,想要实现它要分为几个步骤呢?

  • 程序得识别我们说的话

  • 程序得把我们的话送给智能机器人,然后返回机器人的回答

  • 程序需要将机器人的回答转换成语音播放出来


整个项目的思路如下:




这样的三步下来,便可以实现一个Siri了。那么上述复杂的步骤如何实现呢,其实早就有开发平台帮助我们实现了,我们只需要利用python调用其接口,或者是爬取他们返回的数据即可。


01.

利用百度的语音API


上述的第一步和第三步小编采用的事百度AI开发者平台提供的接口,大家只需要点击下面的网址:

https://ai.baidu.com/tech/speech/asr

分别点击语音识别和语音合成,然后分别创建应用即可分别创建应用,并得到对应的应用ID、APP Key和Secret Key。如下图所示:



创建上述两个应用之后,便可以调用其python接口,然后分别识别我们说的话,并将文字合成为语音。部分核心代码如下所示:


第一步和第三步完成后,那第二步又要如何处理呢?



02. 

寻找智能机器人


这里,小编为大家找到了两个智能机器人的链接。分别是机器人小i和青云客智能机器人。他们的链接分别如下:

小i:http://i.xiaoi.com/

青云客:http://api.qingyunke.com/

小i机器人是一个网页聊天机器人,它的智能程度较高,但是有时链接会打不开,而且没有提供开放接口,需要自己爬取;青云客的机器人虽然智能程度稍低,但是提供了良好的接口。小编已经都为大家制作好了接口,大家只需要调用对应的函数即可。


小编为了大家的直观体验,选择以小i为例,给大家介绍一下,如何获取小i返回的对话文字。


1).首先,大家在开发者模式下找到Network,当我们与小i交流时,可以看到对应的信息不断的变化,如下图所示:


2).接着,通过点击该文件,我们可以看到其请求的url,并从蓝色的框里看到我们请求的数据。接下来我们利用requests库来模拟浏览器请求数据即可。部分代码如下图所示:


3).然后,便是将小i的回复合成语音,然后播放给我们。这里的语音合成,通过上面的介绍可以知道,也是利用的百度的语音合成API。部分程序如下图所示。

这里需要注意的是,语音播放采用的是pyaudio函数库,而pyaudio不能够处理mp3文件,因此需要利用pydub函数库,将mp3文件转换成wav文件播放即可。


4).最后大功告成,利用pyaudio库来把获取的机器人的回复,播放语音




经过上面三个步骤的介绍,想必大家也对最终的成果迫不及待了吧,那么下面小编就为大家进行一下成果展示。

(建议放大音量听一下)


Python还是很有趣,上面的思路和核心的代码已经展示给大家了,有兴趣的可以去动手操作一下,看千边读万遍,不然自己动手敲一边! 


目前Python领域最有趣也是最火的就是AI相关的岗位,如果想从小白开始学Python+AI,现在CSDN有一个非常火爆的活动还送限量的漫威键盘(仅限500张!价值近万Python+AI课程现0.8折,还送漫威键盘套装)。


近期热门:

仅限500张!价值近万Python+AI课程现0.8折,还送漫威键盘套装


菜鸟必收藏,13个Python惯用小技巧

高手心得|菜鸟学Python从入门到进阶




学习群:

小密圈人气很高的两个实战项目

小密圈的趣味实战-微信主题

3个月还没入门Python,看这100名小密圈的同学3周学Python的杰作


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/37584
 
268 次点击