Nab主题,更专业的导航主题
Ctrl + D 收藏本站
当前位置:首页 » AI工具库

Dia:生成超现实多人对话的文本转语音模型

2025-04-22 145

综合介绍

Dia 是一个由 Nari Labs 开发的开源文本转语音(TTS)模型,专注于生成超现实的对话音频。它能在一次处理中将文本脚本转化为逼真的多角色对话,支持情感和语调控制,甚至能生成非语言表达,如笑声。Dia 的核心是 16 亿参数的模型,托管在 Hugging Face 上,用户可通过 GitHub 获取代码和预训练模型。它的设计强调开放性和灵活性,允许用户完全控制对话脚本和语音输出。Dia 提供 Gradio 界面,方便用户快速体验生成对话的效果。项目得到 Google TPU Research Cloud 和 Hugging Face ZeroGPU Grant 支持,灵感来源于 SoundStorm 和 Parakeet 等技术。

Dia:生成超现实多人对话的文本转语音模型-1

演示地址:https://huggingface.co/spaces/nari-labs/Dia-1.6B

 

功能列表

  • 超现实对话生成:将文本脚本转为多角色对话音频,支持多说话者标记(如 [S1], [S2])。
  • 情感与语调控制:通过音频提示或固定种子调节语音的情感和语调。
  • 非语言表达:生成笑声、停顿等非语言声音,增强对话真实感。
  • Gradio 交互界面:提供可视化界面,简化对话生成和音频输出操作。
  • 开源模型与代码:用户可从 Hugging Face 下载预训练模型或在 GitHub 获取源码。
  • 跨设备支持:支持 GPU 运行,未来计划支持 CPU。
  • 可重复性设置:通过设置随机种子,确保生成结果一致。

 

使用帮助

安装流程

要使用 Dia,首先需要克隆 GitHub 仓库并设置环境。以下是详细步骤:

  1. 克隆仓库
    在终端运行以下命令:

    git clone https://github.com/nari-labs/dia.git
    cd dia
    
  2. 创建虚拟环境
    使用 Python 创建虚拟环境以隔离依赖:

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    
  3. 安装依赖
    Dia 使用 uv 工具管理依赖。安装 uv 并运行:

    pip install uv
    uv run app.py
    

    这会自动安装所需库并启动 Gradio 界面。

  4. 硬件要求
    • GPU:推荐 NVIDIA GPU,支持 CUDA。
    • CPU:目前 GPU 优化更好,CPU 支持计划中。
    • 内存:至少 16GB RAM,模型加载需要较高内存。
  5. 验证安装
    运行 uv run app.py 后,终端会显示 Gradio 界面的本地 URL(通常为 http://127.0.0.1:7860)。在浏览器打开此 URL,检查界面是否正常加载。

使用 Gradio 界面

Gradio 界面是 Dia 的主要交互方式,适合快速测试和生成对话。操作步骤如下:

  1. 打开界面
    启动 uv run app.py 后,访问终端显示的 URL。界面包含文本输入框、参数设置和音频输出区域。
  2. 输入对话脚本
    在文本框输入脚本,使用 [S1][S2] 等标记区分说话者。例如:

    [S1] 你好,今天过得怎么样?
    [S2] 还不错,就是有点忙。(笑)
    

    脚本支持非语言标记,如 (笑)

  3. 设置生成参数
    • 最大音频标记--max-tokens):控制生成音频的长度,默认 3072。
    • CFG 比例--cfg-scale):调整生成质量,默认 3.0。
    • 温度--temperature):控制随机性,默认 1.3,值越高越随机。
    • Top-p--top-p):核采样概率,默认 0.95。
      这些参数可在界面调整,初学者可使用默认值。
  4. 添加音频提示(可选)
    为保持语音一致性,可上传参考音频。点击界面中的“音频提示”选项,选择 WAV 文件。官方文档提到,音频提示功能指南即将发布,目前可参考 Gradio 界面中的示例。
  5. 生成音频
    点击“生成”按钮,模型会处理脚本并输出音频。生成时间取决于硬件性能,通常几秒到几十秒。生成的音频可在界面预览或下载为 WAV 文件。
  6. 固定种子
    为确保每次生成的声音一致,可设置随机种子。点击界面“种子”选项,输入整数(如 35)。若不设置,Dia 每次生成的声音可能不同。

命令行使用

除了 Gradio,Dia 还支持命令行操作,适合开发者或批量生成。以下是示例:

  1. 运行 CLI 脚本
    在虚拟环境中运行:

    python cli.py "[S1] 你好! [S2] 嗨,很好。" --output output.wav
    
  2. 指定模型
    默认使用 Hugging Face 的 nari-labs/Dia-1.6B 模型。若使用本地模型,需提供配置文件和检查点:

    python cli.py --local-paths --config config.yaml --checkpoint checkpoint.pt "[S1] 测试" --output test.wav
    
  3. 调整参数
    可通过命令行设置生成参数,例如:

    python cli.py --text "[S1] 你好" --output out.wav --max-tokens 3072 --cfg-scale 3.0 --temperature 1.3 --top-p 0.95 --seed 35
    

特色功能操作

  • 多角色对话
    Dia 的核心优势是生成多角色对话。脚本中通过 [S1][S2] 等标记区分角色,模型会自动为每个角色分配不同声音。建议在脚本中明确角色语气或情感,例如:

    [S1] (兴奋)我们赢了!
    [S2] (惊讶)真的吗?太棒了!
    
  • 非语言表达
    在脚本中加入 (笑)(停顿) 等标记,Dia 会生成对应的声音效果。例如:

    [S2] 这太好笑了!(笑)
    
  • 语音一致性
    为避免每次生成的声音不同,可固定种子或使用音频提示。固定种子在 Gradio 界面或命令行通过 --seed 设置。音频提示需上传高质量 WAV 文件,文件应包含清晰的语音片段。

注意事项

  • 模型未针对特定声音微调:生成的声音可能每次不同,需通过种子或音频提示确保一致性。
  • 硬件限制:GPU 性能对生成速度影响显著,低配设备可能较慢。
  • 伦理指南:Nari Labs 提供使用伦理和法律指南,用户需遵守,避免生成不当内容。

 

应用场景

  1. 内容创作
    Dia 适合为播客、动画或短视频生成逼真对话。创作者可输入脚本,快速生成角色配音,省去录音成本。例如,动画制作者可为角色生成不同语调的对话,增强作品表现力。
  2. 教育与培训
    Dia 可为语言学习或角色扮演培训生成对话音频。例如,语言教师可创建多角色对话,模拟真实场景,帮助学生练习听力和口语。
  3. 游戏开发
    游戏开发者可使用 Dia 为 NPC 生成动态对话。脚本支持情感标记,能为不同场景生成符合角色性格的语音。
  4. 研究与开发
    AI 研究人员可基于 Dia 的开源代码进行二次开发,探索 TTS 技术。模型支持本地加载,适合实验和优化。

 

QA

  1. Dia 支持哪些输入格式?
    Dia 接受文本脚本,需使用 [S1][S2] 标记区分说话者。支持非语言标记如 (笑),可选配 WAV 格式的音频提示。
  2. 如何确保生成的声音一致?
    可通过设置固定种子(--seed)或上传音频提示实现。种子可在 Gradio 界面或命令行设置,音频提示需高质量 WAV 文件。
  3. Dia 是否支持 CPU 运行?
    目前 Dia 优化为 GPU 运行,未来计划支持 CPU。推荐使用 NVIDIA GPU 以获得最佳性能。
  4. 生成音频需要多长时间?
    生成时间取决于硬件和脚本长度。在高性能 GPU 上,短对话生成通常需几秒,长对话可能需几十秒。
  5. Dia 是否免费?
    Dia 是开源项目,代码和模型免费。用户需自行承担运行所需的硬件成本。

相关推荐

找不到AI工具?在这试试!

输入关键词,即可 无障碍访问 必应 搜索,快速找到本站所有 AI 工具。

扫码关注

qrcode

联系我们

回顶部

zh_CN简体中文