Dia: 一款能够一次性生成超现实对话的 TTS 模型

Nari Labs 推出了 Dia,一个 16 亿参数的文本转语音(TTS)模型,它能够直接从文本稿本中生成高度逼真的对话。本文将介绍 Dia 的主要特性、使用方法以及相关的注意事项。

主要特性:

  • 超现实对话生成: Dia 可以直接从脚本中生成逼真的对话,无需复杂的后处理。
  • 情感和语调控制: 可以通过音频来调节输出,从而控制情感和语调。
  • 非语言交流生成: 该模型可以生成非语言交流,例如笑声、咳嗽和清嗓子等。
  • 语音克隆: 可以通过上传音频克隆声音,并用于生成新的对话内容。
  • 支持对话角色标签: 通过 [S1][S2] 标签来区别不同角色。

模型地址:

Dia 的预训练模型权重托管在 Hugging Face 上,你可以通过以下地址访问: nari-labs/Dia-1.6B

快速上手:

可以通过以下步骤快速体验 Dia:

  1. 克隆 GitHub 仓库:

    git clone https://github.com/nari-labs/dia.git
    cd dia
    
  2. 运行 Gradio UI:

    建议使用 uv 运行,如未安装,请先安装 uv

    uv run app.py
    

    或则:

    python -m venv .venv
    source .venv/bin/activate
    pip install uv
    uv run app.py
    

    这将启动一个 Gradio 用户界面,方便测试和使用模型。

使用方法 (Python 库):

以下代码展示了如何使用 Dia 的 Python 库生成音频:

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)

硬件要求与推理速度:

  • Dia 已经在 GPU(Pytorch 2.0+, CUDA 12.6)上进行了测试。 CPU支持将在稍后添加。
  • 完整的 Dia 版本需要大约 10GB 的显存才能运行。
  • 在 A4000 GPU 上,Dia 大致生成 40 个 token/秒(86 个 token 等于 1 秒的音频)。

协议:

该项目基于 Apache License 2.0 协议。

免责声明:

该项目提供了一个高保真语音生成模型,仅供研究和教育用途。严禁以下使用:

  • 身份滥用: 未经许可,请勿生成与真实个人相似的音频。
  • 欺骗性内容: 请勿使用此模型生成误导性内容(例如,虚假新闻)。
  • 非法或恶意使用: 请勿将此模型用于非法或意图造成伤害的活动。

未来工作:

  • Docker 支持
  • 优化推理速度
  • 添加量化以提高内存效率

希望 Dia 的发布能够促进 TTS 领域的研究和应用,欢迎大家积极参与贡献!