🚀 Dia - 文本转语音模型
Dia 是由 Nari Labs 打造的一款拥有 16 亿参数的文本转语音模型。它能够直接根据文本生成高度逼真的对话,还能通过音频对输出进行条件控制,实现情感和语调的调节,甚至可以生成笑声、咳嗽声等非语言交流内容。
🚀 快速开始
安装库
git clone https://github.com/thepushkarp/dia.git
cd dia
python -m venv .venv
source .venv/bin/activate
运行示例代码
import soundfile as sf
from dia.model import Dia
model = Dia.from_pretrained(
"thepushkarp/Dia-1.6B-safetensors-fp16",
config_path="config.json",
checkpoint_path="dia-v0_1-fp16.safetensors",
)
text = "[S1] Dia is an open weights text to dialogue model. [S2] You get full control over scripts and voices. [S1] Wow. Amazing. (laughs) [S2] Try it now on Git hub or Hugging Face."
output = model.generate(text)
sf.write("simple.mp3", output, 44100)
启动 Gradio UI
git clone https://github.com/nari-labs/dia.git
cd dia && uv run app.py
若未预先安装 uv
,可按以下步骤操作:
git clone https://github.com/nari-labs/dia.git
cd dia
python -m venv .venv
source .venv/bin/activate
pip install uv
uv run app.py
⚠️ 重要提示
该模型未针对特定语音进行微调,因此每次运行模型时可能会得到不同的语音。你可以通过添加音频提示(相关指南即将推出,目前可在 Gradio 上的第二个示例中尝试)或固定随机种子来保持说话者的一致性。
✨ 主要特性
- 对话生成:通过
[S1]
和 [S2]
标签生成对话。
- 非语言内容生成:能够生成如
(laughs)
、(coughs)
等非语言内容。
- 语音克隆:详情请参考
example/voice_clone.py
。在 Hugging Face 空间中,你可以上传想要克隆的音频,并在脚本前放置其转录文本。确保转录文本符合要求的格式,模型将仅输出脚本内容。
💻 使用示例
基础用法
import soundfile as sf
from dia.model import Dia
model = Dia.from_pretrained("nari-labs/Dia-1.6B")
text = "[S1] Dia is an open weights text to dialogue model. [S2] You get full control over scripts and voices. [S1] Wow. Amazing. (laughs) [S2] Try it now on Git hub or Hugging Face."
output = model.generate(text)
sf.write("simple.mp3", output, 44100)
高级用法
目前暂未提供高级用法示例,后续可关注项目更新。
🔧 技术细节
FP16 转换统计
原始大小: 6.002177 GB
转换后大小: 3.001058 GB
大小缩减: 50.000510%
最大绝对张量差异: 0.000487
最大相对张量差异: 0.229572
平均绝对张量差异: 0.000010
硬件与推理速度
Dia 仅在 GPU(pytorch 2.0+,CUDA 12.6)上进行了测试,CPU 支持即将添加。首次运行时,由于需要下载 Descript Audio Codec,可能会花费较长时间。
在企业级 GPU 上,Dia 可以实时生成音频;在较旧的 GPU 上,推理时间会较慢。例如,在 A4000 GPU 上,Dia 大约每秒生成 40 个令牌(86 个令牌相当于 1 秒的音频)。torch.compile
可以提高支持的 GPU 的推理速度。
完整版本的 Dia 运行需要约 10GB 的 VRAM,未来将添加量化版本。
📄 许可证
本项目采用 Apache License 2.0 许可协议,详情请参阅 LICENSE 文件。
⚠️ 免责声明
本项目提供了一个高保真的语音生成模型,仅供研究和教育使用。以下使用方式 严格禁止:
- 身份滥用:未经许可,不得生成与真实个人相似的音频。
- 欺骗性内容:不得使用此模型生成误导性内容(如虚假新闻)。
- 非法或恶意使用:不得将此模型用于非法或有害的活动。
使用此模型即表示你同意遵守相关法律标准和道德责任。我们 不对任何滥用行为负责,并坚决反对任何不道德的技术使用方式。
🔭 待办事项 / 未来工作
- 支持 Docker。
- 优化推理速度。
- 添加量化以提高内存效率。
🤝 贡献
我们是一个由 1 名全职和 1 名兼职研究工程师组成的小团队,非常欢迎任何形式的贡献!欢迎加入我们的 Discord 服务器 参与讨论。
🤗 致谢
此外,我们还提供了一个 演示页面,用于将我们的模型与 ElevenLabs Studio 和 Sesame CSM-1B 进行比较。
- (更新) 我们的 ZeroGPU 空间已上线!现在就可以在 这里 尝试。感谢 HF 团队的支持!
- 加入我们的 Discord 服务器 获取社区支持并了解新功能。
- 体验更大版本的 Dia:生成有趣的对话、重新混合内容并与朋友分享。🔮 加入 等待列表 以获得早期访问权限。