ESP-Audio-Codec 组件
概述
有关 ESP-Audio-Codec 组件的介绍及性能说明可参考 ESP-Audio-Codec。
Codec 对比
下表为 ESP-Audio-Codec 支持的 Codec 特性对比:
Codec |
特点 |
典型码率范围(kbps) |
适用场景 |
|---|---|---|---|
AAC (Advanced Audio Coding) |
有损压缩,音质优于 MP3,同码率下更高效;广泛支持。 |
96 – 320(立体声常用 128–256) |
在线音乐、视频流媒体(YouTube、Apple Music、广播)。 |
MP3 |
最普及的有损压缩格式,兼容性极佳,但压缩效率比 AAC/Opus 略低。 |
128 – 320(低至 64 也可用) |
音乐下载、传统播放器、车载音响。 |
AMR-NB / AMR-WB |
专为语音优化,低比特率下语音清晰;NB(8kHz)、WB(16kHz)。 |
AMR-NB: 4.75 – 12.2;AMR-WB: 6.6 – 23.85 |
移动通信(2G/3G 电话通话)、VoIP、语音消息。 |
ADPCM |
简单压缩,延迟低,音质有限;压缩效率不高。 |
常见 16 – 64 |
早期语音存储、嵌入式设备、对延迟敏感的简单音频传输。 |
G.711 (A-law / μ-law) |
波形编码,固定 64 kbps,音质接近电话级;延迟极低。 |
固定为 64 |
固定电话、VoIP(如 SIP)、呼叫中心。 |
OPUS |
低延迟、高音质,支持窄带到全频带,适应性强;开源免费。 |
6 – 510(常见语音 16–32,音乐 64–128) |
实时语音(VoIP、会议)、音乐流、游戏语音、WebRTC。 |
Vorbis |
开源有损压缩,音质好,压缩率比 MP3 优;逐渐被 Opus 取代。 |
64 – 320(常用 128–192) |
开源流媒体(OGG 容器)、部分游戏和应用。 |
FLAC |
无损压缩,保留原始音质,压缩率约 40–60%。 |
700 – 1100(CD 质量,取决于内容) |
高保真音乐存储、音乐下载(Hi-Res 音乐)。 |
ALAC |
苹果无损压缩,与 FLAC 类似,生态受限。 |
700 – 1100(与 FLAC 类似) |
Apple Music 无损音频、iTunes、iOS/macOS 生态。 |
SBC |
简单、低功耗,蓝牙 A2DP 默认编码,音质一般。 |
192 – 320(常用 256) |
蓝牙耳机、蓝牙音箱。 |
LC3 |
继承 SBC,用于蓝牙 LE Audio;低功耗,音质比 SBC 好,延迟低。 |
16 – 160(常用 96–128) |
蓝牙 LE Audio(TWS 耳机、助听器)、物联网音频。 |
使用方法
编码器使用示例
详细用法请参考:audio_encoder_test.c
若需要使用自定义编码器,请按照如下步骤进行:
实现自定义编码器接口,接口形式详见:结构体 esp_audio_enc_ops_t
在枚举
esp_audio_type_t里自定义音频编码器类型,定义范围在ESP_AUDIO_TYPE_CUSTOMIZED到ESP_AUDIO_TYPE_CUSTOMIZED_MAX之间,详见:枚举 esp_audio_type_t如果想要覆盖默认编码器,无需自定义音频编码器类型,可直接使用已有的编码器类型
注册自定义编码器,详见:esp_audio_enc_register()
解码器使用示例
详细用法请参考:audio_decoder_test.c
若需要使用自定义解码器,请按照如下步骤进行:
实现自定义解码器接口,接口形式详见:结构体 esp_audio_dec_ops_t
在枚举
esp_audio_type_t里自定义音频解码器类型,定义范围在ESP_AUDIO_TYPE_CUSTOMIZED到ESP_AUDIO_TYPE_CUSTOMIZED_MAX之间,详见:枚举 esp_audio_type_t如果想要覆盖默认解码器,无需自定义音频解码器类型,可直接使用已有的解码器类型
注册自定义解码器,详见:esp_audio_dec_register()
简易解码器使用示例
详细用法请参考:simple_decoder_test.c
若需要使用自定义简易解码器,请按照如下步骤进行:
实现自定义简易解码器接口,接口形式详见:结构体 esp_audio_simple_dec_reg_info_t
在枚举
esp_audio_simple_dec_type_t里自定义音频简易解码器类型,定义范围在ESP_AUDIO_SIMPLE_DEC_TYPE_CUSTOM到ESP_AUDIO_SIMPLE_DEC_TYPE_CUSTOM_MAX之间,详见:枚举 esp_audio_simple_dec_type_t如果想要覆盖默认解码器,无需自定义音频解码器类型,可直接使用已有的解码器类型
注册自定义简易解码器,详见:esp_audio_simple_dec_register()
相关链接
组件注册表: esp_audio_codec component