🚀 Tango 2: 直接嗜好最適化による拡散ベースのテキストから音声への生成モデルのアライメント
🎵 我々は、テキストから音声を生成するために、Tango をベースに Tango 2 を開発しました。Tango 2 は、Tango-full-ft チェックポイントで初期化され、ペアワイズのテキストから音声への嗜好データセットである audio-alpaca 上で DPO を使用してアライメントトレーニングを行いました。Tango-2-full は、Audio-alpaca の拡張版でトレーニングされました 🎶
論文を読む
🚀 クイックスタート
モデルのダウンロードと音声生成
Tango 2 モデルをダウンロードし、テキストプロンプトから音声を生成するには、以下のコードを実行します。
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango2-full")
prompt = "An audience cheering and clapping"
audio = tango.generate(prompt)
sf.write(f"{prompt}.wav", audio, samplerate=16000)
IPython.display.Audio(data=audio, rate=16000)
モデルは自動的にダウンロードされ、キャッシュに保存されます。以降の実行では、キャッシュから直接モデルが読み込まれます。
generate
関数は、デフォルトで 100 ステップを使用して潜在拡散モデルからサンプリングします。より高品質な音声を生成するには、200 ステップを使用することをおすすめします。ただし、実行時間が長くなります。
prompt = "Rolling thunder with lightning strikes"
audio = tango.generate(prompt, steps=200)
IPython.display.Audio(data=audio, rate=16000)
バッチでの音声生成
generate_for_batch
関数を使用すると、バッチのテキストプロンプトに対して複数の音声サンプルを生成できます。
prompts = [
"A car engine revving",
"A dog barks and rustles with some clicking",
"Water flowing and trickling"
]
audios = tango.generate_for_batch(prompts, samples=2)
これにより、3 つのテキストプロンプトのそれぞれに対して 2 つのサンプルが生成されます。
✨ 主な機能
- Tango ベースの開発:Tango をベースに構築されたテキストから音声への生成モデルです。
- DPO によるアライメントトレーニング:DPO を使用して audio-alpaca データセットでアライメントトレーニングを行いました。
- 拡張データセットでのトレーニング:Tango-2-full は、拡張版の Audio-alpaca でトレーニングされています。
📦 インストール
コードはこちらで公開されています: https://github.com/declare-lab/tango
インストール、使用方法、実験に関する手順は、リポジトリ内の指示に従ってください。
💻 使用例
基本的な使用法
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango2-full")
prompt = "An audience cheering and clapping"
audio = tango.generate(prompt)
sf.write(f"{prompt}.wav", audio, samplerate=16000)
IPython.display.Audio(data=audio, rate=16000)
高度な使用法
prompt = "Rolling thunder with lightning strikes"
audio = tango.generate(prompt, steps=200)
IPython.display.Audio(data=audio, rate=16000)
prompts = [
"A car engine revving",
"A dog barks and rustles with some clicking",
"Water flowing and trickling"
]
audios = tango.generate_for_batch(prompts, samples=2)
📚 ドキュメント
📄 ライセンス
このプロジェクトは、CC BY-NC-SA 4.0 ライセンスの下で公開されています。