千里马Plus是具有语音识别功能,并且兼具了在线语音识别和离线语音识别模块,如下图所示,左边是在线语音识别模块,也就是前面学习的声音传感器;右边是离线语音识别模块。
image.png

3.9.1离线语音模块

离线语音识别使用的是“千里马Plus”模块中的编程语句,如下表所示。

image.png 设置识别阈值,也就是准确度。
image.png 添加需要识别的词,并进行编号,第一个词编号为0,以此类推,编号最多至5。

案例:当我们说“快跑”的时候,千里马Plus向前跑动,同时亮绿灯;说“停下”的时候,千里马Plus停止运动,亮红灯。
步骤1:千里马初始化,设置识别阈值,将“快跑”、“停下”添加为识别的关键词,关键词只能是拼音的形式,每个字之间使用“-”进行分隔,必须使用英文字符,不可以使用中文字符。
image.png

步骤2:判断是否存在数据,然后判断数据的ID号。
image.png

步骤3:综合前面的程序,加上循环,完整程序如下:
image.png

步骤4:程序上传后,将会切换至语音识别模式,即可开始语音识别了。
image.png
注意:说话的时候,声音要响亮、语速要慢、普通话要准确,如果发现一直识别不准确,则调试一下识别阈值,找到识别最准确的那个值。

3.9.2在线语音模块

千里马Plus学习下图中的两个路标。使用千里马Plus的在线语音,需要加载模块,可以使用“讯飞语音”或“百度语音”
image.png

这里以讯飞语音为例,“讯飞语音”模块中常用的在线语音识别语句主要如下:

image.png 音频初始化,导入音频相关的库文件。
image.png 开始录制你所说的话,并设置一次的市场,建议2-3秒即可
image.png 将前面的录音进行识别
image.png 这是前面的录音识别后的结果,可以进行打印、转为文本显示在屏幕等等。

案例:当我们说“快跑”的时候,千里马Plus向前跑动,同时亮绿灯;说“停下”的时候,千里马Plus停止运动,亮红灯。
步骤1:连接wifi,音频初始化。设置变量“i”为空列表,用来表示识别的语音结果,并进行对比。
image.png

步骤2:开始录音,并将录音结果进行识别,识别的结果添加至列表中。
image.png

步骤3:对录音结果进行判断,判断是否包含“快”、“跑”、“停”的字眼,并执行对应操作。
image.png

步骤4:综上,将所有的程序进行,完整程序如下。
image.png

注意:如果出现下面的错误,这不是代码的错误,是当天语音识别的次数已用完,可以改天再试。
{‘state’: False, ‘err’: ‘error code 11201, reason licc failed’}
image.png