音频流指的是负责获取和处理音频数据并将处理后的音频发送出去的音频元素。主要包含以下音频流:算法流、FatFs流、HTTP流、I2S流、PWM流、原始流、SPIFFS流、TCP客户端流、提示音流、嵌入式Flash流、语音合成流等。每个流stream都有一个结构体作为输入参数进行初始化,其返回的audio_element_handle_t句柄用来调用audio_element.h中的函数。
算法流 Algorithm Stream
算法流集成声学回声消除 (AEC)、自动增益控制 (AGC)、噪声抑制 (NS) 等前端算法,用于 处理收取的音频,常用于 网络电话(VoIP)、语音识别、关键词唤醒等需要预处理的场景。算法流调用 esp-sr,故占用较 大内存,且只支持 AUDIO_STREAM_READER 类型。
audio_element_handle_t algo_stream_init(algorithm_stream_cfg_t *config)
FatFs流
FatFs 流从 FatFs 文件系统中读取和写入数据,具有读和写两种类型。
audio_element_handle_t fatfs_stream_init(fatfs_stream_cfg_t *config)
HTTP流
HTTP 流 通 过 esp_http_client() 获 取 和 发 送 数 据, 具 有 读 和 写 两 种 类 型, 类 型 由audio_stream_type_t 定 义。AUDIO_STREAM_READER 支 持 HTTP、HTTPS 和 HTTP 流 直 播 流 协议 (HTTP Live Stream) 等协议,使用前需要连接网络。
audio_element_handle_t http_stream_init(http_stream_cfg_t *config)
I2S流
I2S 流通过芯片的 I2S、PDM、ADC、DAC 接口接收和发送音频数据,其中 ADC、DAC 功能需要芯片定义 SOC_I2S_SUPPORTS_ADC_DAC。I2S 流还集成自动电平控制 (ALC) 来调节音量,多通道输出和扩展发送音 频数据位宽,相关控制位定义在i2s_stream_cfg_t 中。
audio_element_handle_t i2s_stream_init(i2s_stream_cfg_t *config)
PWM流
一些成本敏感的场景中,音频信号不用 DAC 进行转换,而是使用 PWM 对信号进行调制并经过滤波电路实 现。PWM 流实现了音频数据用芯片的 PWM 进行调制并发送的功能,只有 AUDIO_STREAM_WRITER 类型。 注意,PWM 的数模转换信噪较低。
audio_element_handle_t pwm_stream_init(pwm_stream_cfg_t *config)
原始流 Raw Stream
原始流 用于获取连接的前级元素输出数据,或者为后级连接的元素填充数据,本身不建 立线程。AUDIO_STREAM_READER 的应用方式为 [i2s] -> [filter] -> [raw] 或 [i2s] -> [codec-amr] -> [raw], AUDIO_STREAM_WRITER 的应用方式为 [raw]->[codec-mp3]->[i2s]。
audio_element_handle_t raw_stream_init(raw_stream_cfg_t *cfg)
SPIFFS流
SPIFFS 流从 SPIFFS 读取和写入音频数据。
audio_element_handle_t spiffs_stream_init(spiffs_stream_cfg_t *config)
TCP客户端流 TCP Client Stream
TCP 客户端流 () 通过 TCP 读取和写入服务器数据。
audio_element_handle_t tcp_stream_init(tcp_stream_cfg_t *config)
提示音流 Tone Stream
提示音流读取 tools/audio_tone/mk_audio_tone.py 生成的数据,只支持 AUDIO_STREAM_READER 类型。
audio_element_handle_t tone_stream_init(tone_stream_cfg_t *config)
嵌入Flash流
嵌 入 Flash 流 (flash-embedding stream) 读 取 tools/audio_tone/mk_embed_flash.py 生 成 的 数 据, 只 支 持 AUDIO_STREAM_READER 类型。
audio_element_handle_t embed_flash_stream_init(embed_flash_stream_cfg_t *config)
语音合成流 TTS Stream
语音合成流获取 esp-sr 的 esp_tts_voice 数据,只支持AUDIO_STREAM_READER 类型。
audio_element_handle_t tts_stream_init(tts_stream_cfg_t *config
6949

被折叠的 条评论
为什么被折叠?



