🚀 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)
這將為三個文本提示中的每個提示生成兩個樣本。
💻 使用示例
基礎用法
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)
📚 詳細文檔
代碼
我們的代碼發佈在此處:https://github.com/declare-lab/tango
請按照倉庫中的說明進行安裝、使用和實驗。
📄 許可證
本項目採用知識共享署名 - 非商業性使用 - 相同方式共享 4.0 國際許可協議(CC BY-NC-SA 4.0)。
📦 信息表格
屬性 |
詳情 |
模型類型 |
基於擴散的文本到音頻生成模型 |
訓練數據 |
bjoernp/AudioCaps、declare-lab/audio-alpaca |
任務類型 |
文本到音頻 |
標籤 |
文本到音頻 |