🚀 EnCodecモデルカード
このモデルカードは、Meta AIによって開発された最先端のリアルタイムオーディオコーデックであるEnCodecに関する詳細情報を提供します。
✨ 主な機能
モデルの概要
EnCodecは、ニューラルネットワークを利用した高忠実度のオーディオコーデックです。量子化された潜在空間を持つストリーミングエンコーダ・デコーダアーキテクチャを導入し、エンドツーエンドで学習されています。
このモデルは、単一のマルチスケールスペクトログラム敵対者を使用することで、学習を簡素化し高速化し、アーティファクトを効率的に削減し、高品質なサンプルを生成します。
また、損失の典型的なスケールからハイパーパラメータの選択を切り離すことで学習を安定させる新しい損失バランサーメカニズムも備えています。
さらに、軽量なTransformerモデルを使用して、得られた表現をさらに圧縮しながらリアルタイム性能を維持します。
- 開発者: Meta AI
- モデルの種類: オーディオコーデック
モデルのソース
📦 インストール
直接利用
EnCodecは、オーディオ信号のリアルタイム圧縮と伸張用のオーディオコーデックとして直接使用できます。
高品質なオーディオ圧縮と効率的なデコードを提供します。このモデルは、様々な帯域幅で学習されており、エンコード(圧縮)およびデコード(伸張)時に指定できます。
EnCodecには2つの異なる設定があります。
- 非ストリーミング可能: 入力オーディオは1秒のチャンクに分割され、10msのオーバーラップがあり、それらがエンコードされます。
- ストリーミング可能: 畳み込み層に重み正規化が使用され、入力はチャンクに分割されず、左側にパディングされます。
下流利用
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
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
🔧 技術詳細
学習の詳細
このモデルは300エポックで学習され、1エポックは2,000回の更新で、Adamオプティマイザーを使用し、バッチサイズはそれぞれ1秒の64サンプル、学習率は3 · 10−4、β1 = 0.5、β2 = 0.9です。すべてのモデルは8台のA100 GPUを使用して学習されています。
学習データ
彼らはこれらのデータセットからサンプリングするために4つの異なる学習戦略を使用しました。
- (s1) 0.32の確率でJamendoから単一のソースをサンプリングする。
- (s2) 同じ確率で他のデータセットから単一のソースをサンプリングする。
- (s3) 0.24の確率ですべてのデータセットから2つのソースを混合する。
- (s4) 0.12の確率で音楽を除くすべてのデータセットから3つのソースを混合する。
オーディオはファイルごとに正規化され、-10から6dBのランダムなゲインが適用されます。
評価
復元の主観的指標
このモデルは、MUSHRAプロトコル(Series, 2014)を使用して評価され、隠し参照と低アンカーの両方が使用されました。アノテーターはクラウドソーシングプラットフォームを使用して募集され、提供されたサンプルの知覚品質を1から100の範囲で評価するように求められました。彼らはテストセットの各カテゴリから5秒のサンプルをランダムに50サンプル選択し、サンプルごとに少なくとも10回のアノテーションを強制しました。ノイズの多いアノテーションと外れ値をフィルタリングするために、少なくとも20%のケースで参照録音を90未満に評価するアノテーター、または50%以上の時間で低アンカー録音を80以上に評価するアノテーターを削除しました。
復元の客観的指標
ViSQOL()ink)指標が、スケール不変信号対雑音比(SI-SNR)(Luo & Mesgarani, 2019; Nachmani et al., 2020; Chazan et al., 2021)とともに使用されました。
結果
評価の結果は、異なる帯域幅(1.5、3、6、および12 kbps)で、ベースラインと比較してEnCodecの優位性を示しています。
同じ帯域幅でEnCodecとベースラインを比較すると、EnCodecはMUSHRAスコアの点で一貫して上回っています。
特に、EnCodecは、平均して、6 kbpsのLyra-v2および12 kbpsのOpusと比較して、3 kbpsでより良い性能を達成します。
さらに、コード上の言語モデルを組み込むことで、約25 - 40%の帯域幅削減を達成することができます。
たとえば、3 kbpsのモデルの帯域幅を1.9 kbpsに削減することができます。
まとめ
EnCodecは、最先端のリアルタイムニューラルオーディオ圧縮モデルであり、さまざまなサンプルレートと帯域幅で高忠実度のオーディオサンプルを生成するのに優れています。
このモデルの性能は、24kHzモノラルの1.5 kbpsから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}
}