求助:开发板ESP32-Korvo V1.1在进行Audio Front-end 框架处理时双MIC算法后音频不正常

qinli198
Posts: 14
Joined: Tue Feb 15, 2022 9:27 am

求助:开发板ESP32-Korvo V1.1在进行Audio Front-end 框架处理时双MIC算法后音频不正常

Postby qinli198 » Thu Sep 22, 2022 12:19 pm

使用开发板ESP32-Korvo V1.1运行ESP-Skainet 示例voice_communication时使用默认的一个mic+一个ref的方式时
afe_handle = &ESP_AFE_VC_HANDLE;
afe_config_t afe_config = AFE_CONFIG_DEFAULT();
afe_config.vad_init = false;
afe_config.wakenet_init = false;
afe_config.voice_communication_init = true;
运行结果AFE处理结果是正常的,但是开发板是3-MIC阵列修改代码测试2mic+1ref的模式
修改如下
afe_handle = &ESP_AFE_VC_HANDLE;
afe_config_t afe_config = AFE_CONFIG_DEFAULT();
afe_config.vad_init = false;
afe_config.wakenet_init = false;
afe_config.voice_communication_init = true;
afe_config.pcm_config.total_ch_num = 3;
afe_config.pcm_config.mic_num = 2;
afe_config.pcm_config.ref_num =1;

然后修改hardware_driver/esp32-korvo/bsp_board.c文件中的仿照hardware_driver/esp32s3-korvo-1/bsp_board.c中的

esp_err_t bsp_get_feed_data(int16_t *buffer, int buffer_len)
{
esp_err_t ret = ESP_OK;
size_t bytes_read;
int audio_chunksize = buffer_len / (sizeof(int16_t) * ADC_I2S_CHANNEL);
ret = i2s_read(I2S_NUM_1, buffer, buffer_len, &bytes_read, portMAX_DELAY);

for (int i = 0; i < audio_chunksize; i++) {
int16_t ref = buffer[4 * i + 0];
//buffer[2 * i + 0] = buffer[4 * i + 1];
//buffer[2 * i + 1] = ref;
buffer[3 * i + 0] = buffer[4 * i + 1];
buffer[3 * i + 1] = buffer[4 * i + 3];
buffer[3 * i + 2] = ref;
}

return ret;
}
然后再编译下载后运行但是处理后的 原始音频文件 fetch.pcm中的音频就不再正常了。
请问:是不是AFE音频前端处理时2-MIC 1REF模式是不是只能在 esp32s3的模组里面运行?

Who is online

Users browsing this forum: No registered users and 14 guests