前言
随着人工智能概念的火热,很多IT公司都重金投入,布局人工智能,并陆续推出很多优秀的产品,比如微软小冰,苹果siri,亚马逊的AmazonEcho,科大讯飞的输入法,百度云系列产品等等,当然我们也能乘着这股东风,利用这些大公司提供的开发平台来玩玩语音识别。当然这里也试试水,用语音来控制一个GPIO
摘要
文章简要地介绍了如何用语音去控制GPIO/点灯
正文
语音控制GPIO主要分两部分,一个是语音输入,然后调用api转成文本,然后就正则去匹配,再控制GPIO
语言平台
采用网红开源语言python。Python语言开发软件效率高,可移植性强,有丰富的标准库和第三方库,代码易维护。python的执行速度相对较慢,但树莓派运算速度足够快,pyhon执行速度慢的缺点在本项目中可以忽略
语音输入
要实现让计算机听懂声音,将语音中包含的文字信息提取出来,需要用到ASR技术,即语音识别。 语音识别技术一般架构如下图,主要分编码,训练和解码。如下编码,通过傅里叶变换,MFCC等把语音变成语音向量。训练,即通过机器学习等方式,建立语言向量模型,解码,即把训练好的模型组合起来。简答地说就是语音通过算法转化为语音向量,然后再根据一定算法在语音向量库找出相应语音模型,然后将该语音模型重新转化为文本。这里常用到的开源工具有HTK Speech Recognition Toolkit,Kaldi ASR以及Tensorflow。 显然,语音识别技术是一项难度巨大的技术,但是很多互联网巨头已经帮我们完成了这一步,我们只需要调用相应API即可。提供ASR技术的有谷歌,Nuance公司,百度语音和科大讯飞等。我在这里用的是百度api,具体的使用方式为先通过ardcord工具将语音录制下来,保存为wav格式的音频文件,然后调用百度的REST API,流程基本为获取token,把wav文件,语音数据,token等发送给百度语音,处理返回的JSON数据。
以上 就完成了语音输入 以及转成文本。
python提供了强大正则匹配功能 我们只需要去匹配 开灯 关灯灯字样就可以识别到我们的语音
GPIO控制 GPIO的控制相当简单。
这样就完成了语音控制GPIO的项目
结语 由于本人学识有限,对语音识别方便的了解也只是九牛一毛,难免有错误之处, 欢迎批评指正
|