Encodec 24khz
模型简介
模型特点
模型能力
使用案例
🚀 EnCodec - 实时音频编解码器
EnCodec 是 Meta AI 开发的一款先进的实时音频编解码器,能够高效地对音频信号进行高质量的压缩与解压缩,可广泛应用于语音生成、音乐生成等多种音频处理场景。
🚀 快速开始
安装必要的 Python 包
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_24khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_24khz")
# 将音频数据转换为模型所需的采样率
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate))
audio_sample = librispeech_dummy[0]["audio"]["array"]
# 预处理输入
inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt")
# 显式编码然后解码音频输入
encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, encoder_outputs.audio_scales, inputs["padding_mask"])[0]
# 或者使用前向传播实现相同功能
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values
✨ 主要特性
- 高保真音频处理:利用神经网络实现高保真的音频编解码,能有效减少音频失真,生成高质量的音频样本。
- 创新架构设计:采用流式编码器 - 解码器架构和量化潜在空间,通过端到端的方式进行训练。
- 高效训练机制:使用单一多尺度频谱图对抗器简化并加速训练,同时引入新颖的损失平衡机制,稳定训练过程。
- 实时性能优越:使用轻量级 Transformer 模型进一步压缩表示,在保持实时性能的同时,实现音频的高效处理。
📦 安装指南
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_24khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_24khz")
# 将音频数据转换为模型所需的采样率
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate))
audio_sample = librispeech_dummy[0]["audio"]["array"]
# 预处理输入
inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt")
# 显式编码然后解码音频输入
encoder_outputs = model.encode(inputs["input_values"], inputs["padding_mask"])
audio_values = model.decode(encoder_outputs.audio_codes, encoder_outputs.audio_scales, inputs["padding_mask"])[0]
# 或者使用前向传播实现相同功能
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values
📚 详细文档
模型详情
属性 | 详情 |
---|---|
模型类型 | 音频编解码器 |
开发者 | Meta AI |
仓库地址 | GitHub Repository |
论文地址 | EnCodec: End-to-End Neural Audio Codec |
应用场景
直接使用
EnCodec 可直接作为音频编解码器,对音频信号进行实时压缩和解压缩。它提供高质量的音频压缩和高效的解码功能,支持在编码(压缩)和解码(解压缩)时指定不同的带宽。存在两种不同的设置:
- 非流式:将输入音频分割成 1 秒的片段,重叠 10 毫秒,然后进行编码。
- 流式:在卷积层使用权重归一化,输入音频不分割成片段,而是在左侧进行填充。
下游应用
EnCodec 可针对特定音频任务进行微调,或集成到更大的音频处理管道中,用于语音生成、音乐生成或文本转语音等应用。
训练详情
训练参数
模型训练了 300 个周期,每个周期包含 2000 次更新,使用 Adam 优化器,批量大小为 64 个 1 秒的音频样本,学习率为 3 · 10−4,β1 = 0.5,β2 = 0.9。所有模型均使用 8 个 A100 GPU 进行训练。
训练数据
- 语音数据:DNS Challenge 4、Common Voice
- 通用音频数据:AudioSet、FSD50K
- 音乐数据:Jamendo dataset
采用四种不同的训练策略对这些数据集进行采样:
- (s1) 以 0.32 的概率从 Jamendo 中采样单个源。
- (s2) 以相同的概率从其他数据集中采样单个源。
- (s3) 以 0.24 的概率从所有数据集中混合两个源。
- (s4) 以 0.12 的概率从除音乐数据集外的所有数据集中混合三个源。
音频按文件进行归一化处理,并应用 -10 到 6 dB 之间的随机增益。
评估
主观恢复指标
使用 MUSHRA 协议(Series, 2014)对模型进行评估,同时使用隐藏参考和低锚点。通过众包平台招募注释者,要求他们对提供的样本的感知质量进行 1 到 100 的评分。从测试集的每个类别中随机选择 50 个 5 秒的样本,并强制每个样本至少有 10 个注释。为过滤嘈杂的注释和异常值,移除那些在至少 20% 的情况下对参考录音评分低于 90,或在超过 50% 的情况下对低锚点录音评分高于 80 的注释者。
客观恢复指标
使用 ViSQOL 指标和尺度不变信噪比(SI - SNR)(Luo & Mesgarani, 2019; Nachmani et al., 2020; Chazan et al., 2021)。
评估结果
评估结果表明,在不同带宽(1.5、3、6 和 12 kbps)下,EnCodec 优于基线模型。与相同带宽的基线模型相比,EnCodec 在 MUSHRA 评分方面始终表现更优。值得注意的是,EnCodec 在 3 kbps 时的平均性能优于 Lyra - v2 在 6 kbps 和 Opus 在 12 kbps 时的性能。此外,通过在编码上结合语言模型,可以实现约 25 - 40% 的带宽减少。例如,3 kbps 模型的带宽可以减少到 1.9 kbps。
总结
EnCodec 是一款先进的实时神经音频压缩模型,能够在不同采样率和带宽下生成高保真的音频样本。模型的性能在从 24kHz 单声道 1.5 kbps 到 48kHz 立体声的不同设置下进行了评估,展示了主观和客观的评估结果。值得注意的是,EnCodec 采用了一种新颖的仅频谱图对抗损失,有效减少了伪影并提高了样本质量。通过引入损失权重的梯度平衡器,进一步增强了训练的稳定性和可解释性。此外,研究表明,在不影响质量的情况下,特别是在对低延迟要求不高的应用(如音乐流)中,可以使用紧凑的 Transformer 模型实现高达 40% 的额外带宽减少。
🔧 技术细节
EnCodec 利用神经网络实现高保真音频编解码,采用流式编码器 - 解码器架构和量化潜在空间,通过端到端训练。使用单一多尺度频谱图对抗器简化并加速训练,引入损失平衡机制稳定训练过程。轻量级 Transformer 模型在保持实时性能的同时,进一步压缩音频表示。
📄 许可证
文档未提及相关信息,故跳过该章节。
📖 引用
@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}
}







