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







