🚀 EnCodec モデルカード
Meta AIによって開発された最先端のリアルタイムオーディオコーデックである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_48khz")
processor = AutoProcessor.from_pretrained("facebook/encodec_48khz")
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
✨ 主な機能
モデルの詳細
モデルの説明
EnCodecは、ニューラルネットワークを活用した高忠実度のオーディオコーデックです。量子化された潜在空間を持つストリーミングエンコーダー・デコーダーアーキテクチャを導入し、エンドツーエンドで学習されます。このモデルは、単一のマルチスケールスペクトログラム敵対者を使用することで、学習を簡素化し、高速化します。これにより、アーティファクトを効率的に削減し、高品質のサンプルを生成します。また、新しい損失バランサーメカニズムを備えており、損失の典型的なスケールからハイパーパラメータの選択を切り離すことで、学習を安定させます。さらに、軽量なTransformerモデルを使用して、得られた表現をさらに圧縮しながら、リアルタイム性能を維持します。
- 開発元: Meta AI
- モデルタイプ: オーディオコーデック
モデルのソース
用途
直接利用
EnCodecは、オーディオ信号のリアルタイム圧縮と伸張のためのオーディオコーデックとして直接使用できます。高品質のオーディオ圧縮と効率的なデコードを提供します。このモデルは、様々な帯域幅で学習されており、エンコード(圧縮)およびデコード(伸張)時に指定することができます。EnCodecには、2つの異なる設定があります。
- 非ストリーマブル: 入力オーディオは1秒のチャンクに分割され、10msのオーバーラップでエンコードされます。
- ストリーマブル: 畳み込み層に重み正規化が使用され、入力はチャンクに分割されず、左側にパディングされます。
下流利用
EnCodecは、特定のオーディオタスクに対してファインチューニングすることができ、また、音声生成、音楽生成、またはテキストから音声へのタスクなどのアプリケーションのために、より大規模なオーディオ処理パイプラインに統合することができます。
📦 インストール
pip install --upgrade pip
pip install --upgrade datasets[audio]
pip install git+https://github.com/huggingface/transformers.git@main
📚 ドキュメント
学習の詳細
このモデルは、300エポックで学習されました。1エポックは、バッチサイズ64の1秒のサンプルを用いた2,000回の更新で構成されています。Adamオプティマイザーを使用し、学習率は3 · 10−4、β1 = 0.5、β2 = 0.9です。すべてのモデルは、8台のA100 GPUを使用して学習されました。
学習データ
これらのデータセットからサンプリングするために、4つの異なる学習戦略が使用されました。
- (s1) Jamendoから単一のソースを確率0.32でサンプリングする。
- (s2) 他のデータセットから単一のソースを同じ確率でサンプリングする。
- (s3) すべてのデータセットから2つのソースを確率0.24で混合する。
- (s4) 音楽を除くすべてのデータセットから3つのソースを確率0.12で混合する。
オーディオはファイルごとに正規化され、-10から6dBのランダムなゲインが適用されます。
評価
復元の主観的指標
このモデルは、MUSHRAプロトコル(Series, 2014)を使用して評価されました。隠れた参照と低アンカーの両方を使用します。アノテーターはクラウドソーシングプラットフォームを使用して募集され、提供されたサンプルの知覚品質を1から100の範囲で評価するように求められました。テストセットの各カテゴリから50個の5秒のサンプルをランダムに選択し、サンプルごとに少なくとも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は、平均して、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%の追加の帯域幅削減を達成できることが示されています。特に、低レイテンシが重要でないアプリケーション(例:音楽ストリーミング)で有効です。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
🔗 引用
@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}
}