本博客学习由
一、前言
离线语音,顾名思义:在不连网络的状态下,产品能识别语音指令并执行相应的控制输出。
安信可基于乐鑫ESP32芯片开发的ESP32-A1S开发板智能语音助手,可支持唤醒词引擎(WakeNet),离线语音命令识别引擎(MultiNet)和前端声学算法。 ESP32-A1S 将 ESP32 与人工智能(AI)语音识别相结合,是安信可完整的 AIoT 解决方案的一部分。
下面使用我的开发笔记,将讲解如何使用ESP32-A1S开发板轻松的实现离线语音控制LED灯。
二、离线语音框架
2.1 算法模型 WakeNet 和 识别模型 MultiNet
既然是语音唤醒,本地识别,就离不开算法模型和识别模型,而ESP32-A1S是基于乐鑫一个仓库esp_sr为基础的。而 esp_sr 提供语音识别相关方向算法模型,目前主要包括三个模块:
唤醒词识别模型 WakeNet
语音命令识别模型 MultiNet
声学算法:集成了回声消除 AEC(Acoustic Echo Cancellation),自动增益调节 AGC(automatic_gain_control),噪声抑制 NS(Noise Suppression),语音活动检测 VAD(Voice Activity Detection) 和麦克风阵列算法(Mic Array Processing)。
2.2 唤醒词识别
唤醒词模型 WakeNet,致力于提供一个低资源消耗的的高性能模型,支持类似“Alexa”,“天猫精灵”,“小爱同学”等唤醒词的识别。
目前,ESP32的唤醒词仅仅开放了如下几个:“Hi,乐鑫”,“你好小智”,“你好小鑫”,“hi,Jeson”等唤醒词。
2.3.2 语音命令识别
命令词识别模型 MultiNet ,致力于提供一个灵活的离线语音命词识别框架。用户可方便根据需求自定义语音命令,无需重新训练模型。
目前模型支持类似“打开空调”,“打开卧室灯”等中文命令词识别,自定义语音命令词最大个数为 100。
英文命令词定义将在下一版提供支持。
三、开发板、编译、体验
3.1 ESP32-A1S开发板
因为是 esp32 芯片开发,所以固件是基于ESP32的SDK开发为基础,仓库代码已经开发了支持ESP32-A1S开发板简单控制的demo。
ESP32-A1