主要参考资料:
ESP-SR 用户指南: https://docs.espressif.com/projects/esp-sr/zh_CN/latest/esp32s3/index.html
目录
- ESP提供的模型
- 直接初始化和使用模型
- AFE声学前端算法 + 使用模型
- 自定义模型
ESP提供的模型
乐鑫提供了经过训练的 WakeNet 和 MultiNet 模型,使用模型前需先将其加载至你的项目,目前 ESP-SR 支持以下模型加载方式:
- 从 SPI 闪存(flash)文件系统分区加载
- 从外部 SD 卡加载
配置方法:运行 idf.py menuconfig 进入 ESP Speech Recognition
直接初始化和使用模型
//
// step1: return models in flash
//
char *model_path = your_model_path: // partition_label or model_path in sdcard;
models = esp_srmodel_init(model_path);
//
// step2: select the specific model by keywords
//
char *alexa_wn_name = esp_srmodel_filter(models, ESP_WN_PREFIX, "alexa"); // select WakeNet with "alexa" wake word.
//
// step3: initialize model
//
esp_wn_iface_t *wakenet = esp_wn_handle_from_name(wn_name);
model_iface_data_t *wn_model_data = wakenet->create(wn_name, DET_MODE_2CH_90);
AFE声学前端算法 + 使用模型
乐鑫 AI 自主研发了一套乐鑫 AFE 算法框架,可基于ESP32-S3 系列芯片进行声学前端处理。
//
// step1: return models in flash
//
char *model_path = your_model_path: // partition_label or model_path in sdcard;
models = esp_srmodel_init(model_path);
//
// step2: select the specific model by keywords
//
char *wn_name = esp_srmodel_filter(models, ESP_WN_PREFIX, "alexa"); // select WakeNet with "alexa" wake word.
//
// step3: initialize AFE and model
//
afe_handle = (esp_afe_sr_iface_t *)&ESP_AFE_SR_HANDLE;
afe_config_t afe_config = AFE_CONFIG_DEFAULT();
afe_config.memory_alloc_mode = AFE_MEMORY_ALLOC_MORE_PSRAM;
afe_config.wakenet_init = true;
afe_config.wakenet_model_name = wn_name;
afe_config.voice_communication_init = false;
afe_config.aec_init = false;
afe_config.pcm_config.total_ch_num = 2;
afe_config.pcm_config.mic_num = 1;
afe_config.pcm_config.ref_num = 1;
afe_data = afe_handle->create_from_config(&afe_config);