依稀记得去年生日,对着 Google 说 "Sing me Happy Birthday" 。
她真的给我唱了英文版的生日歌,满怀深情地(我感觉……)。最后还加了一串调皮的鼓声。
我转头对着公司的前台小姐姐说,看见没有,你的 Siri 不爱我。。。
呃,不瞎扯了。
基于以上的渊源,我用 Python 写了一个还算得上智能的语音助理。
截图如下:
AI1
不要慌,用的现成的框架和公共 API,一百来行代码而已,权当游戏。
一、整体结构
没有做过多的设计(不懂。。。),整体就是一个简单的线性结构,顺序执行。
一次交互完毕后,从头开始重复执行。
SpeechRecognition(录音)--> 百度语音(Speech-to-Text)--> 图灵机器人(语义分析及应答)--> 百度语音(Text-to-Speech)--> PyAudio(音频播放)
二、SpeechRecognition
SpeechRecogintion 是 Python 的一个语音识别框架,已经对接了如谷歌和微软的 STT (语音转文本)服务。
本项目里的语音识别及合成用的是百度的开放服务,所以只是需要 SpeechRecogintion 的录音功能。
它可以检测语音中的停顿自动终止录音并保存,比 PyAudio 更人性化(代码写起来也更简单)。
安装依赖库
Windows
安装 SpeechRecognition 需要提前装好 Python 的 PyAudio 框架。PyAudio 貌似需要编译安装,Windows 系统上估计会有点麻烦。
我用的是 Anaconda 软件,Windows 系统上用它管理 Python 包很方便。
嫌这个软件太大的话,也有简化版的 Miniconda 。
装好以后直接执行下面的命令即可(当然也可以在 conda 的虚拟环境里安装,不赘述):
conda install pyaudio
PyAudio 装好以后,直接使用 Python 的包管理工具 pip 安装 SpeechRecognition 即可:
pip install SpeechRecognition
Linux
Linux 系统下就显得省事一点了。可以直接使用系统自带的包管理器安装 PyAudio (如 Ubuntu 和 Raspbian 系统的 apt-get)
$ sudo apt-get install python3-pyaudio
当然也可以使用 pip