/esp_speech_recognition

ESP32 语音唤醒+离线识别+百度在线识别

Primary LanguageJupyter NotebookMIT LicenseMIT

esp_speech_recognition

ESP32 语音唤醒+离线识别+百度在线识别

  • 语音唤醒主要使用diy-alexa的训练模型
  • 离线识别使用esp-sr, 同时esp-sr也提供语音唤醒,但是使用固定的唤醒词,所以使用tflite-micro进行训练以实现任意唤醒词唤醒
  • 离线识别无法匹配,则使用百度的在线语音识别,暂时没有做语义的识别
P(0.99): Here I am, brain the size of a planet...       //使用马文唤醒
I (14006) app_speech: speech command id: 18            //匹配离线识别的id, 打开电灯

P(0.97): Here I am, brain the size of a planet...       //使用马文唤醒
I (18916) app_speech: can not recognize any speech commands
I (18916) app_speech: start using Baidu speech recognition
I (19586) app_speech: resp_code: 200   {"corpus_no":"7087581481571160454","err_msg":"success.","err_no":0,"result":["打开电视机。"],"sn":"958384688661650206158"}           //百度在线识别结果

编译说明

  1. 开发环境参考esp-idf
  2. tflite-micro需要cmake-3.16.0, idf默认安装的camke可能不能满足要求,需要手动升级, ubuntu参考cmakk升级
  3. 项目默认使用ESP32-S3-EYE开发板, 使用I2S麦克风
  4. 需要在百度AI平台添加一个语音识别应用并获取token, 文档
    // 修改baidu_ai/baiduChunkedUploader.cc->you_token
    #define REQUEST  "POST http://vop.baidu.com/server_api?cuid=1234543&token=you_token HTTP/1.1\r\n\