Python实时语音识别

Python实时语音识别

题图 摄于爬山时

“长在石壁洞里的小可爱”


今天是2019年4月4日,星期四,今年的第94天,这一年的25.75%的时间已流逝。

数字总是给人最直接的刺激,尤其在工作日的尾巴、清明假的开始说这个确实有些败兴。翻看公众号的发文记录,上一篇Python代码相关的文章发于3月4日,已经是整整一个月了,很惭愧,我在这个三月对Python的学习放松了很多,接下来会调整状态更努力些。

我闲暇时间也没有太放纵,开始培养跑步的习惯,偶尔也尝试学习做菜,也有了些小收获:

Python实时语音识别

由于跑步时没做好防护,感冒了一段时间,这两天也算恢复得差不多了,计划逐渐回归正常的学习节奏。

最近自己想接触下语音识别,经过一番了解和摸索,实现了对语音识别API的简单调用,正好写文章记录下。目前搜到的帖子里,有现成的调用百度语音API来对音频文件进行识别的;也有通过谷歌语音服务来实现了实时语音识别的。由于我这谷歌语音一直调用不成功,就将二者结合,简单实现了通过百度语音API来进行实时语音识别。

语音识别

语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的技术,微信中将语音消息转文字,以及“Hi Siri”启用Siri时对其进行发号施令,都是语音识别的现实应用。

语音识别API

百度语音识别通过REST API的方式给开发者提供一个通用的HTTP接口。任意操作系统、任意编程语言,只要可以对百度语音服务器发起http请求,均可使用此接口来实现语音识别。调用API的流程在百度语音官方文档中有说明。

Python实时语音识别

语音识别步骤

  1. 先注册百度云的账号,控制台中创建百度语音的应用,获取API Key和Secret Key

  2. 通过API Key 和 Secret Key获取token

  3. 将token和本地音频数据上传到API链接

  4. 根据API返回结果获取解析后的文字结果

注意上述过程中我们是使用的本地音频数据,那么我们如何将自己的语音转为相应的数据呢?只要调用麦克风记录我们的语音信息存为wav格式的文件即可。而实时语音识别,即一直保持检测麦克风,只要有声音就生成wav文件向API发送请求;当识别不到语音信息时,自动停止。

代码中我参考了调用谷歌语音的 speech_recognition 模块,因为它调用麦克风的命令特别简单,而且会根据检测麦克风结果自动结束录音。

需要通过pip install SpeechRecognition 下载 speech_recognition 模块来实现上述录音工作。

效果展示

语音识别结果如下图:

Python实时语音识别

代码下载

后台回复 语音识别 获取代码下载链接

以上算是对语音识别的初步实现,希望后续能挖掘些更有意思的应用,欢迎继续关注哈~ 以及如果身边有学Python的朋友,欢迎推荐下本公众号,万分感谢!