🚀 TANGO:使用指令引導擴散的文本轉音頻模型
TANGO 是一款用於文本轉音頻生成的潛在擴散模型。它能夠根據文本提示生成逼真的音頻,涵蓋人類聲音、動物聲音、自然和人造聲音以及音效等。我們使用經過凍結處理且經過指令微調的大語言模型 Flan - T5 作為文本編碼器,並訓練了一個基於 UNet 的擴散模型用於音頻生成。在客觀和主觀指標上,我們的模型均優於當前最先進的音頻生成模型。我們向研究社區發佈了模型、訓練和推理代碼以及預訓練檢查點。
📣 我們最近發佈了 Tango 2,可點擊此處訪問。
📣 我們正在發佈在 TangoPromptBank 上進行預訓練的 Tango - Full。
🚀 快速開始
下載模型並生成音頻
下載 TANGO 模型並根據文本提示生成音頻:
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango-full-ft-audiocaps")
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
批量生成音頻
使用 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)
這將為三個文本提示中的每個提示生成兩個樣本。
📦 安裝指南
請遵循倉庫中的說明進行安裝、使用和實驗。我們的代碼發佈在:https://github.com/declare-lab/tango
💻 使用示例
基礎用法
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango-full-ft-audiocaps")
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)
📚 詳細文檔
我們上傳了幾個 TANGO 生成的樣本,可訪問:https://tango-web.github.io/
📄 許可證
本項目採用 CC - BY - NC - SA 4.0 許可證。
📋 信息表格