推理:false
许可证:mit

EnCodec模型卡
本模型卡提供由Meta AI开发的实时音频编解码器EnCodec的详细信息。
模型详情
模型描述
EnCodec是一种基于神经网络的高保真音频编解码器。它采用端到端训练的流式编解码架构,并引入量化潜在空间。
该模型通过单一多尺度频谱对抗器简化并加速训练,有效减少伪影并生成高质量样本。
创新性的损失平衡机制通过解耦超参数选择与损失尺度,提升了训练稳定性。
此外,轻量级Transformer模型进一步压缩表征,同时保持实时性能。
- 开发机构: Meta AI
- 模型类型: 音频编解码器
模型来源
用途
直接使用
EnCodec可直接作为实时音频信号压缩/解压缩编解码器,支持不同带宽配置(编码时指定)。提供两种工作模式:
- 非流式: 将音频分割为1秒片段(10ms重叠)后编码
- 流式: 对卷积层进行权重归一化,采用左填充处理连续输入
下游应用
可微调用于语音生成、音乐合成或文本转语音等任务,或集成至音频处理管线。
[需补充更多信息]
快速开始
使用LibriSpeech示例数据(约9MB)运行模型:
pip install --upgrade pip
pip install --upgrade datasets[audio]
pip install git+https://github.com/huggingface/transformers.git@main
from datasets import load_dataset, Audio
from transformers import EncodecModel, AutoProcessor
librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")
model = EncodecModel.from_pretrained("facebook/encodec_48khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_48khz")
audio_sample = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate))[0]["audio"]["array"]
inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt")
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values
训练详情
- 训练配置: 300轮次(每轮2,000次更新),batch size=64(1秒/样本),学习率3e-4(Adam优化器,β1=0.5,β2=0.9)
- 硬件: 8块A100 GPU
训练数据
- 语音: DNS Challenge 4、Common Voice
- 通用音频: AudioSet、FSD50K
- 音乐: Jamendo
采用四种混合采样策略:单音源(概率0.32)、双音源混合(0.24)、三音源混合(0.12),应用-10至6dB随机增益归一化。
评估
主观指标(重建质量)
采用MUSHRA协议,通过众包平台收集感知质量评分(1-100分)。筛选标准:剔除对参考音频评分<90(20%以上)或对低锚点评分>80(50%以上)的标注者。
客观指标
使用ViSQOL(v3)和SI-SNR(尺度不变信噪比)。
结果
EnCodec在1.5/3/6/12kbps带宽下均优于基线模型:
- 3kbps版本性能优于Lyra-v2(6kbps)和Opus(12kbps)
- 结合语言模型可额外减少25-40%带宽(如3kbps→1.9kbps)
总结
EnCodec在24kHz单声道至48kHz立体声的各种配置下均展现卓越性能,其创新点包括:
- 纯频谱对抗损失有效提升音质
- 梯度平衡器增强训练稳定性
- 轻量Transformer实现40%额外带宽压缩(适用于音乐流媒体等非低延迟场景)
引用
@misc{défossez2022high,
title={High Fidelity Neural Audio Compression},
author={Alexandre Défossez and Jade Copet and Gabriel Synnaeve and Yossi Adi},
year={2022},
eprint={2210.13438},
archivePrefix={arXiv},
primaryClass={eess.AS}
}