-
-
Notifications
You must be signed in to change notification settings - Fork 217
Description
esp_err_t audio_init(void) {
i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_AUTO, I2S_ROLE_MASTER);
ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, NULL, &rx_handle));
i2s_pdm_rx_config_t pdm_rx_cfg = {
.clk_cfg = I2S_PDM_RX_CLK_DEFAULT_CONFIG(8000),
.slot_cfg = I2S_PDM_RX_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO),
.gpio_cfg = {
.clk = I2S_CLK_GPIO,
.din = I2S_DATA_GPIO,
.invert_flags = {
.clk_inv = false,
},
},
};
ESP_ERROR_CHECK(i2s_channel_init_pdm_rx_mode(rx_handle, &pdm_rx_cfg));
ESP_ERROR_CHECK(i2s_channel_enable(rx_handle));
return audio_codec_init();
}
以上是最初的麦克风接收的音频初始化配置,我从i2s_PDM格式改成i2s_STD格式,
esp_err_t audio_init(void) {
i2s_chan_config_t chan_cfg = I2S_CHANNEL_DEFAULT_CONFIG(I2S_NUM_AUTO, I2S_ROLE_MASTER);
chan_cfg.dma_desc_num = 6;
chan_cfg.dma_frame_num = 1024;
ESP_ERROR_CHECK(i2s_new_channel(&chan_cfg, NULL, &rx_handle));//创建I2S通道
i2s_std_config_t std_rx_cfg = {
.clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(8000),
.slot_cfg = I2S_STD_PHILIP_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_8BIT, I2S_SLOT_MODE_MONO),
.gpio_cfg = {
.mclk = GPIO_NUM_NC,
.bclk = I2S_BCLK_GPIO,
.ws = I2S_WS_GPIO,
.dout = GPIO_NUM_NC,
.din = I2S_DIN_GPIO,
.invert_flags = {
.mclk_inv = false,
}
}
};
std_rx_cfg.slot_cfg.slot_mask = I2S_STD_SLOT_LEFT;
i2s_channel_init_std_mode(rx_handle, &std_rx_cfg);//初始化I2S通道
ESP_ERROR_CHECK(i2s_channel_enable(rx_handle));
return audio_codec_init();
}
这是我改成I2S_STD格式的代码,我用的MIC是INMP441,编码采用的是G711。请问该如何修改代码能够在您的测试网页上能够收到清晰的声音?谢谢!