- 在线语音识别的优势
- 一,语音识别流程图
- 二,录音
- 三,词法分析
在线语音识别结合语义分析,具有识别精准,灵活性高的特点,但是,其处理速度不如离线识别。
与离线识别不同的是,在esp32被唤醒后,会进行录音,录音结束后将音频发送到云端进行语音识别,并将返回的文本结果进行词法分析,得到特征值,根据特征值,执行相应的命令。
esp32被唤醒后就开始录音,通过VAD音量检测,判断用户是否在讲话,若讲话停止则停止录音(或到达录音最大时间),并将数据通过http客户端发送到百度云语音识别接口。
这里展示主要的代码,录音的数据保存到recoder中:
百度词法分析文档
百度词法分析定制说明
接收到语音识别返回的文本后,还需要对文本进行词法分析,解析出文本中包含的指令。这个功能使用的是百度的词法分析定制版。具体逻辑是:首先我们确定一个词汇集,如:{打开,开启,启动},并将该词汇集命名为OPEN,{空调,格力空调}命名为”AC“
例如,用户输入“打开空调”,词法分析就会得到以下结果
我们读取”ne“键中的内容,就能判断用户的意图。以下代码请求词法分析
在获取到以上的JSON数据后,接下来就是提取“ne”中的内容,用下面的数据结构来辅助解析。
以下代码会解析每个词,并填充到ety_eles数组,每个单词对应一个ety_eles成员:
下面,根据得到的ety_eles数组,组装成一个Audio_Order类型的命令:
有了Audio_Order命令,我们就能根据命令的内容作出反应。