🚀 Tango 2:通过直接偏好优化对齐基于扩散的文本到音频生成模型
🎵 我们在 Tango 的基础上开发了 Tango 2,用于文本到音频的生成。Tango 2 以 Tango-full-ft 检查点进行初始化,并在音频偏好数据集 audio-alpaca 上使用直接偏好优化(DPO)进行对齐训练。🎶
阅读论文
🚀 快速开始
下载 Tango 2 模型,并根据文本提示生成音频:
import IPython
import soundfile as sf
from tango import Tango
tango = Tango("declare-lab/tango2")
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")
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
请按照仓库中的说明进行安装、使用和实验。
📄 许可证
本项目采用 CC BY-NC-SA 4.0 许可证。
📦 相关信息
属性 |
详情 |
模型类型 |
文本到音频生成模型 |
训练数据 |
bjoernp/AudioCaps、declare-lab/audio_alpaca |
标签 |
文本到音频 |
管道标签 |
文本到音频 |