通过pyaudio,已经可以将人说的话保存成声音文件。
但是,我们还需要计算机可以听懂人说的话,并执行相应的命令。
在计算机科学里,这被称为“语音识别技术”,语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。
通俗一点,可以把语音识别理解成2步。
把语音识别成文字
难点是发音不标准、方言、多音字、多音词等等。
理解话的意思
难点是语境、语气、上下文等等。
比如下面的例子:
语音识别是一门非常复杂的交叉学科。近三十年来,语音识别技术取得显著进步,开始从实验室走向市场。其中涉及到非常多的数学知识,有兴趣的话可以看一看吴军的《数学之美》当然,我们使用Python来实现一个基于语音识别的智能语音机器人,肯定不需要自己完全搞懂语音识别的复杂原理,自己从底层去实现一边。因为互联网上,已经有好多免费开放的语音识别接口,我们直接使用就可以了。接下来,就介绍如何使用百度AI的“语音识别”接口将人说的话识别成文字。
创建语音识别应用
1.进入百度AI开放平台-->控制台。(提示:需要有百度账号)2.进入“语音技术”,创建应用3.管理应用,得到AppID、API Key 、 Secret Key这3个值
安装百度AI Python包
百度AI的Python包安装非常简单。
只需要在“命令提示符”里输入 "pip install baidu-aip"就可以了。提示:需要先设置好环境变量,才可以直接在“命令提示符”里执行pip程序,如何设置环境变量可以看上一篇。
使用百度aip进行语音识别
安装百度AI的Python包之后,将语音识别为文字就非常非常简单了。首先使用 from aip import AipSpeech引入需要使用的语音识别模块。函数audio_2_txt(file)只有一个参数,就是需要识别的语音文件的路径。函数内前3行需要填写前面在百度AI开放平台创建的应用的AppID、API Key 、 Secret Key。
第5行就是创建了一个客户端。接下来,open语音文件,调用 client的asr函数对语音文件进行识别。这个函数的后3个参数也非常好理解。
第一个参数指明需要识别的文件是一个wav文件。
第二个参数指明语音文件里的声音采样频率是16000
第三个参数指明语音是用中文说的。
from aip import AipSpeech
def audio_2_txt(file):
appID = ‘’ #填写自己的App ID
appKey = ‘’ # 填写自己的 API Key
appSecret = ‘’ # 填写自己的 Secret Key
client = AipSpeech(appID, appKey, appSecret)
with open(file,'rb') as fp:result = client.asr(fp.read(),'wav',16000,{'lan':'zh',})print(result)
return result
audio_2_txt(‘C:\temp\mysong.wav’)
打印识别出来的结果,“小猪小猪”已经被正确识别出来了。