AudioDec简介
AudioDec是由Facebook Research开发的一款开源高保真流式神经音频编解码器。它旨在为实时通信应用提供高质量的音频压缩和重建能力,同时保持低比特率和低延迟。AudioDec在三个关键指标上都取得了优异的表现:
- 压缩率高:仅需12.8 kbps的比特率即可传输信号
- 延迟低:在GPU上编解码延迟仅为6毫秒,CPU上约10毫秒
- 重建质量高:可重建高度自然的48 kHz语音信号
这使得AudioDec成为实时语音通信、直播等应用的理想选择。
AudioDec的核心特性
AudioDec具有以下几个突出的特点:
-
开源可用: AudioDec采用开源许可发布,研究者和开发者可以自由使用和修改代码。
-
流式处理: 支持实时流式编解码,适合低延迟通信场景。
-
高保真重建: 能够重建高质量的48 kHz语音信号,保持语音的自然度。
-
低资源消耗:
- 仅需12.8 kbps的比特率即可传输单声道48 kHz语音
- GPU上解码延迟约6毫秒,CPU上(4线程)约10毫秒
-
高效训练范式: 采用两阶段训练方法,可快速适应新的应用场景。
-
多模式支持: 提供AutoEncoder和AutoEncoder+Vocoder两种工作模式。
AudioDec的工作模式
AudioDec支持两种主要的工作模式:
-
AutoEncoder模式(symAD)
- 从头训练一个基于AutoEncoder的编解码模型
- 先用度量损失训练200k次迭代
- 然后固定编码器、投影器、量化器和码本,用判别器训练解码器500k次迭代
-
AutoEncoder + Vocoder模式(AD v0,1,2) (推荐)
- 提取训练好的Encoder提取的码本统计信息(全局均值和方差)
- 用训练好的Encoder和统计信息训练vocoder 500k次迭代
第二种模式是官方推荐的使用方式,可以获得更好的音频重建效果。
使用AudioDec
要开始使用AudioDec,首先需要安装相关依赖:
- Python 3.8+
- CUDA 11.0+
- PyTorch 1.10+
然后可以通过以下步骤运行实时流式编解码演示:
- 下载预训练模型
- 获取I/O设备列表
- 运行演示脚本:
# GPU版本
python demoStream.py --tx_cuda 0 --rx_cuda 0 --input_device 1 --output_device 4 --model libritts_v1
# CPU版本
python demoStream.py --tx_cuda -1 --rx_cuda -1 --input_device 1 --output_device 4 --model libritts_sym
AudioDec还提供了文件编解码演示:
# VCTK 48kHz模型
python demoFile.py --model vctk_v1 -i input.wav -o output.wav
# LibriTTS 24kHz模型
python demoFile.py --model libritts_v1 -i input.wav -o output.wav
训练自己的AudioDec模型
如果需要针对特定应用场景训练自己的AudioDec模型,可以按照以下步骤进行:
- 准备训练/验证/测试数据集
- 修改配置文件中的路径
- 运行训练脚本:
bash submit_codec.sh --start 0 --stop 4 \
--autoencoder "autoencoder/symAD_vctk_48000_hop300" \
--statistic "stati/symAD_vctk_48000_hop300_clean" \
--vocoder "vocoder/AudioDec_v1_symAD_vctk_48000_hop300_clean"
这将完成从头训练AutoEncoder、提取统计信息、训练Vocoder到最终测试的全流程。
AudioDec的应用扩展
除了基本的音频编解码功能,AudioDec还可以扩展到其他音频处理任务,如降噪:
- 准备噪声-干净语音对数据集
- 更新编码器进行降噪训练:
bash submit_autoencoder.sh --stage 0 \
--tag_name "denoise/symAD_vctk_48000_hop300"
- 运行降噪:
bash submit_autoencoder.sh --stage 2 \
--encoder "denoise/symAD_vctk_48000_hop300" \
--decoder "vocoder/AudioDec_v1_symAD_vctk_48000_hop300_clean" \
--encoder_checkpoint 200000 \
--decoder_checkpoint 500000 \
--subset "noisy_test"
这种方法只需更新编码器,就可以实现降噪等新功能,体现了AudioDec良好的模块化设计和扩展性。
AudioDec的性能评估
在VCTK语料库上进行的客观和主观评估表明,AudioDec在低比特率下仍能保持较高的音频质量。与SoundStream等其他神经网络编解码器相比,AudioDec在相同比特率下可以获得更好的音质。
虽然论文中没有直接与Opus等传统编解码器比较,但AudioDec的神经网络架构为进一步提升性能提供了更大的潜力空间。在实际应用中,AudioDec展现出优秀的实时性能,能够满足低延迟通信的需求。
总结与展望
AudioDec作为一个开源的高保真神经音频编解码器,在压缩率、延迟和重建质量等方面都取得了不错的平衡。它的模块化设计和高效训练范式,为研究人员和开发者提供了一个理想的音频编解码基准和开发平台。
未来AudioDec还有很大的发展空间,如:
- 进一步降低比特率,提高压缩效率
- 改进网络结构,减少计算资源消耗
- 扩展到多通道音频处理
- 结合更多音频处理任务,如语音增强、分离等
总的来说,AudioDec为神经网络音频编解码领域提供了一个强大而灵活的解决方案,有望在未来的实时通信和音频处理应用中发挥重要作用。研究者和开发者可以基于AudioDec进行进一步的探索和创新,推动音频技术的不断进步。