# 音频应用框架 [English] ------------------------------------------------------------------------ ## 1. ESP-ADF 使用 VOIP 功能,手机和 ESP32 设备进行通话如何消除回音? * 从软件层面来讲,回声消除 (Acoustic Echo Cancelation, AEC) 对系统性能要求较高,而当前芯片性能无法支持通过软件实时 AEC。因此,VOIP 目前没有 AEC 的软件解决方案。 * 建议使用支持 AEC 的 DSP 芯片来消除回音。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 2. 使用 ESP32-Korvo-DU1906 开发板必须用百度云吗? * ESP32-Korvo-DU1906 开发板例程只限于使用百度云进行测试,并且需要 Profile。请联系百度获取 Profile。 * 与其他服务器通信(亚马逊、图灵等等)理论上是可以实现的,但当前未有相关测试用例。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 3. 乐鑫官网给出的网络电话例程是否支持 RTP? * 当前网络电话协议是[VoIP](https://www.espressif.com/zh-hans/news/ESP32_VoIP),媒体协议是RTP。 * 可使用 Espressif SDK ESP-ADF 下的 [VOIP例程](https://github.com/espressif/esp-adf/tree/master/examples/advanced_examples/voip)。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 4. ESP-ADF 中 RTP 协议是否开源? * 目前 RTP 协议未开源,是以 lib 形式供外部调用。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 5. ESP-ADF 例程能否实现蓝牙耳机的音量调节功能? 如:pipeline\_a2dp\_sink\_and\_hfp, pipeline\_a2dp\_sink\_stream, pipeline\_bt\_sink * 目前 ESP-ADF 还不支持 AVRCP 的调音操作,IDF release/v4.0 及以上已经支持了,您可以尝试使用 ESP-IDF 中 a2dp\_sink 的 Demo 和 a2dp\_source 对跑。 * 后续会在 ADF 的 Demo 中直接支持。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 6. 我想在 ESP32-LyraT 的 I2C 接一个传感器使用,请问有如何读取 I2C 设备数据的例程吗? * 请参考[Demo](https://github.com/espressif/esp-idf/tree/722043f734fa556d66d57473ac266fb1d0ec5ad2/examples/peripherals/i2c)。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 7. 如何输出 32bit 的 I2S 音频数据? * 重新写一个 my\_i2s\_write 函数调用 i2s\_write\_expand, 然后把 my\_i2s\_write 用 `audio_element_set_write_cb` 修改 i2s\_stream element 的 write 函数。 ```c int my_i2s_write(audio_element_handle_t self, char *buffer, int len, TickType_t ticks_to_wait, void *context) { i2s_stream_t *i2s = (i2s_stream_t *)audio_element_getdata(self); size_t bytes_written = 0; i2s_write_expand(i2s- config.i2s_port, buffer, len, 16, 32, &bytes_written, ticks_to_wait); return bytes_written; } i2s_stream_cfg_t i2s_writer = I2S_STREAM_CFG_DEFAULT(); i2s_writer.type = AUDIO_STREAM_WRITER; i2s_writer.stack_in_ext = true; i2s_writer.i2s_config.sample_rate = 48000; i2s_writer.i2s_config.mode = I2S_MODE_MASTER | I2S_MODE_TX; i2s_writer.i2s_config.bits_per_sample = 32; //for cupid digital loopback audio_element_handle_t my_i2s = i2s_stream_init(&i2s_writer); audio_element_set_write_cb(my_i2s, my_i2s_write, NULL); ``` 更新时间:2022.4.21
------------------------------------------------------------------------ ## 8. 请问为何用 ESP-ADF 和 ESP-IDF v4.1 编译 example/get-started/play-pm3 时总是报错? 错误日志: `fatal error: audio_type_def.h: No such file or directory` * 文件 audio\_type\_def.h 位于 ESP-ADF 的 esp-adf-libs中。如果在编译过程中找不到该文件,则说明 ESP-ADF v2.4 可能未被正确检测出。特别是子模块可能尚未更新。 * 要正确检测 ESP-ADF v2.4,请按照所述的步骤进行操作:[更新至一个稳定发布版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/versions.html#id7)。 * 尝试执行以下命令并重复编译。 ```bash cd $ADF_PATH git fetch git checkout v2.4 git submodule update --init --recursive ``` 更新时间:2022.4.21
------------------------------------------------------------------------ ## 9. 请问官方有没有可以支持 ESP-IDF v4.4 的 ESP-ADF 版本? * [ESP-ADF Release v2.4](https://github.com/espressif/esp-adf/releases/tag/v2.4) 支持 ESP-IDF v3.3,v4.1,v4.2,V4.3 和 v4.4。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 10. 加入 DuerOS 是否会将 esp32-lyrat 开发板的录音功能全程占用? * 目前的设计是全程占用录音数据。但是您可以通过使能 `I2S_stream` 的 `multi_output` 功能, 让录音的数据通过这个通道输出到想要的地方。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 11. ESP32-LyraT V4.3 不支持 dueros 吗?烧进去 dueros 固件,机器一直重启? * 设置 ram 为 64 M 或是自动 `Component config - ESP32 Specific - SPI RAM config - Type of SPIRAM in use- select ESP-PSRAM64` 。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 12. ESP-ADF 支持语音识别关键词自定义开发吗? * 暂时还未开放语音训练接口,您可以直接使用免费唤醒词 "嗨乐鑫"。如果目前您有定制需求,可以发送邮件至 咨询。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 13. ESP-ADF 是否支持 ESP32-LyraTD-MSC V2.1 开发板跑 Alexa 例程? * 对于 Alexa 例程,请使用[esp-prov-v2](https://github.com/espressif/esp-avs-sdk/releases/download/v1.0b1r3/esp-prov-v2.apk)进行配网。 * ESP-ADF 已经支持 ESP32-LyraTD-MSC,将 `ADF git submodule update` 后可以直接使用 Demo 编译。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 14. ESP32 关于语音识别方面,要能本地化,能否推荐相应的开发板? * [ESP-Skainet](https://github.com/espressif/esp-skainet)是乐鑫推出的智能语音助手,目前支持唤醒词识别和命令词识别。 * 要运行 ESP-Skainet,您需要有一个集成了音频输入模块的 ESP32 开发板。在示例中,我们使用 ESP32-LyraT-Mini 或 ESP32-Korvo V1.1。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 15. ESP32 是否有同时支持 MIC 和 AUX 拾音的开发板? * ESP32-lyraT-4.3 开发板支持 MIC 和 AUX 拾音。开发板说明参见[esp32-lyrat-v4-3](https://docs.espressif.com/projects/esp-adf/zh_CN/latest/get-started/get-started-esp32-lyrat.html#esp32-lyrat-v4-3)。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 16. 如何利用 ESP32-LyraT 开发板实现通话功能? * 可参考语音通话例程 [voip](https://github.com/espressif/esp-adf/tree/master/examples/advanced_examples/voip)。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 17. ESP32 系列音频开发板支持多大功率的扬声器? * ESP32 开发板默认使用 NS4150 的 PA,其 datasheet 提到功率不超过 3W。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 18. Alexa solution 对环境噪声是否有一定的要求? * 当前乐鑫的语音方案可以满足信噪比 5 dB以内的环境要求,对于一些固定的噪音场景还可以做到 0 dB 以内(需要针对实际产品进行优化)。 更新时间:2022.4.21
------------------------------------------------------------------------ ## 19. ESP32 的 AI 开发板上有 AUX 输入,MIC 就无法拾音了吗? * ESP-ADF 开发框架可以选择多种方式拾音,有 MIC 输入和 Line-in。 * 拾音方式选择如下: ```c typedef enum { AUDIO_HAL_CODEC_MODE_ENCODE = 1, /*!