模型:

facebook/encodec_48khz

英文

EnCodec 模型卡

该模型卡提供了关于 EnCodec 的详细信息,EnCodec 是由 Meta AI 开发的一种最先进的实时音频编解码器。

模型详细信息

模型描述

EnCodec 是一种利用神经网络的高保真音频编解码器。它引入了一种流式编码器-解码器架构,具有量化的潜在空间,并以端到端的方式进行训练。该模型通过使用一个多尺度频谱对抗器来简化和加速训练,有效减少了伪影并产生高质量的样本。此外,它还包括一种新颖的损失平衡机制,通过将超参数的选择与典型损失的尺度解耦来稳定训练。此外,还使用轻量级 Transformer 模型进一步压缩所得的表示,同时保持实时性能。

  • 开发者:Meta AI
  • 模型类型:音频编解码器

模型来源

用途

直接使用

EnCodec 可以直接用作音频编解码器,用于对音频信号进行实时压缩和解压缩。它提供高质量的音频压缩和高效的解码。该模型在训练时使用了不同的带宽,编码(压缩)和解码(解压缩)时可以指定。EnCodec 有两种不同的设置:

  • 不可流式处理:将输入音频分割为1秒的块,采用10毫秒的重叠,然后进行编码。
  • 可流式处理:卷积层使用权重归一化,输入不分块,而是在左侧进行填充。

下游应用

EnCodec 可以针对特定音频任务进行微调,或者集成到更大的音频处理流水线中,用于语音生成、音乐生成或文本到语音任务等应用中。

【需要更多信息】

如何开始使用模型

使用以下代码可以使用来自 LibriSpeech 数据集(~9MB)的虚拟示例开始使用 EnCodec 模型。首先,安装所需的 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


# load a demonstration datasets
librispeech_dummy = load_dataset("hf-internal-testing/librispeech_asr_dummy", "clean", split="validation")

# load the model + processor (for pre-processing the audio)
model = EncodecModel.from_pretrained("facebook/encodec_48khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_48khz")

# cast the audio data to the correct sampling rate for the model
librispeech_dummy = librispeech_dummy.cast_column("audio", Audio(sampling_rate=processor.sampling_rate))
audio_sample = librispeech_dummy[0]["audio"]["array"]

# pre-process the inputs
inputs = processor(raw_audio=audio_sample, sampling_rate=processor.sampling_rate, return_tensors="pt")

# explicitly encode then decode the audio inputs
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]

# or the equivalent with a forward pass
audio_values = model(inputs["input_values"], inputs["padding_mask"]).audio_values

训练详细信息

该模型使用 Adam 优化器进行了300个时期的训练,每个时期包含2000次更新,批大小为64个1秒的示例,学习率为1.5e-4,β1 = 0.5,β2 = 0.9。所有模型均使用了8个 A100 GPU 进行训练。

训练数据

他们使用了四种不同的训练策略来对这些数据集进行采样:

  • (s1)以0.32的概率从Jamendo中采样单个源;
  • (s2)以相同的概率从其他数据集中采样单个源;
  • (s3)以0.24的概率从所有数据集中混合两个源;
  • (s4)以0.12的概率从所有数据集中混合三个源,不包括音乐。

音频按文件进行归一化,随机增益在-10到6 dB之间。

评估

恢复的主观度量

该模型使用 MUSHRA 协议(Series, 2014)进行了评估,同时使用了隐藏参考音频和低锚定音频。通过众包平台招募了标注者,要求他们在1到100的范围内对提供的样本的感知质量进行评级。他们随机选择每个类别测试集中的50个5秒样本,并强制要求每个样本至少有10个注释。为了筛除嘈杂的注释和异常值,删除了至少在20%的情况下对参考录音给出低于90评分的标注者,或者对低锚定录音给出超过80评分的标注者超过50%的情况。

恢复的客观度量

使用 ViSQOL()和尺度不变的信噪比(SI-SNR)(Luo & Mesgarani, 2019; Nachmani et al., 2020; Chazan et al., 2021)进行了评估。

结果

评估结果表明,在不同的带宽(1.5、3、6和12 kbps)下,EnCodec相对于基准模型表现出更高的性能。

当以相同的带宽比较EnCodec与基准模型时,EnCodec在MUSHRA评分方面始终优于它们。值得注意的是,EnCodec在3 kbps的情况下,相比于6 kbps的Lyra-v2和12 kbps的Opus,平均表现更好。此外,通过将语言模型与代码结合,可以实现约25-40%的带宽减小。例如,3 kbps模型的带宽可以减小到1.9 kbps。

Summary

EnCodec 是一种最先进的实时神经音频压缩模型,擅长在不同的采样率和带宽下产生高保真的音频样本。该模型的性能在不同的设置下进行了评估,范围从1.5 kbps的24kHz单声道到48kHz立体声,并展示了主观和客观结果。值得注意的是,EnCodec通过引入仅基于频谱图的对抗性损失,有效减少了伪影并提高了样本质量。通过引入损失权重的梯度平衡器,进一步增强了训练的稳定性和可解释性。此外,研究表明,可以使用紧凑的Transformer模型在不降低质量的前提下实现额外的带宽减小,特别适用于对低延迟不是关键的应用(例如音乐流媒体)。

引用

BibTeX:

@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}
}