🚀 TANGO: インストラクションガイド付き拡散モデルによるテキストから音声への変換
TANGO は、テキストから音声を生成する潜在拡散モデルです。TANGO は、テキストプロンプトから、人の声、動物の鳴き声、自然音や人工音、そして効果音を含むリアルな音声を生成することができます。凍結されたインストラクションチューニング済みの大規模言語モデルであるFlan - T5をテキストエンコーダとして使用し、音声生成用のUNetベースの拡散モデルを学習させています。客観的および主観的な指標の両方で、現在の最先端の音声生成モデルを上回っています。研究コミュニティのために、モデル、学習コード、推論コード、および事前学習済みのチェックポイントを公開しています。
📣 我々は、多様なテキストと音声のペアのコレクションである TangoPromptBank で最初に事前学習され、その後AudioCapsで微調整された Tango - Full - FT - Audiocaps を公開しています。このチェックポイントは、AudioCapsにおけるテキストから音声への生成において最先端の結果を達成しています。
🚀 クイックスタート
モデルのダウンロードと音声生成
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango")
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)
An audience cheering and clapping.webm
モデルは自動的にダウンロードされ、キャッシュに保存されます。その後の実行では、キャッシュから直接モデルが読み込まれます。
generate
関数は、デフォルトで100ステップを使用して潜在拡散モデルからサンプリングします。より高品質な音声を生成するには、200ステップを使用することをおすすめします。ただし、実行時間が増えるというコストがあります。
prompt = "Rolling thunder with lightning strikes"
audio = tango.generate(prompt, steps=200)
IPython.display.Audio(data=audio, rate=16000)
Rolling thunder with lightning strikes.webm
バッチでの音声生成
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つのサンプルが生成されます。
✨ 主な機能
- 多様な音声生成:人の声、動物の鳴き声、自然音や人工音、効果音など、様々な音声をテキストプロンプトから生成できます。
- 最先端の性能:客観的および主観的な指標の両方で、現在の最先端の音声生成モデルを上回っています。
📦 インストール
コードはこちらで公開されています: https://github.com/declare-lab/tango
いくつかの TANGO 生成サンプルをこちらにアップロードしています: https://tango-web.github.io/
インストール、使用方法、実験に関する指示は、リポジトリ内の説明に従ってください。
🔧 技術詳細
- テキストエンコーダ:凍結されたインストラクションチューニング済みの大規模言語モデルであるFlan - T5を使用しています。
- 音声生成モデル:UNetベースの拡散モデルを学習させて音声を生成します。
📄 ライセンス
このプロジェクトは、CC - BY - NC - SA 4.0ライセンスの下で公開されています。
💡 注意事項
⚠️ 重要提示
TANGOは小規模なAudioCapsデータセットで学習されているため、学習時に見ていない概念に関連する良質な音声サンプルを生成できない場合があります(例:singing)。同じ理由で、TANGOはテキスト制御プロンプトに対して生成を細かく制御できないことがあります。例えば、Chopping tomatoes on a wooden table と Chopping potatoes on a metal table のプロンプトからの生成結果は非常に似ています。Chopping vegetables on a table も同様の音声サンプルを生成します。したがって、モデルがテキスト概念の構成と様々なテキスト - 音声マッピングを学習するためには、より大規模なデータセットでテキストから音声への生成モデルを学習させる必要があります。
💡 使用建议
我々は、より大規模なデータセットで別のバージョンのTANGOを学習させて、その汎化能力、構成能力、制御可能な生成能力を向上させています。最新のバージョンを使用することをおすすめします。