模型:

facebook/encodec_24khz

英文

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_24khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_24khz")

# 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

培训详细信息

该模型进行了300个epoch的训练,每个epoch进行2000次更新,使用Adam优化器,批量大小为64个1秒钟的示例,学习率为3 · 10-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的注释者。

恢复的客观度量

使用ViSQOL()ink)指标以及尺度不变的信噪比(SI-SNR)(Luo & Mesgarani,2019;Nachmani等人,2020;Chazan等人,2021)。

结果

评估结果显示EnCodec在不同带宽(1.5、3、6和12 kbps)下优于基线。

将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模型实现高达40%的带宽减小,特别适用于对低延迟不是关键的应用(例如音乐流媒体)。

引用

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