ComfyUI-SoulX-Podcast:双人多方言长文本播客,零训练一键生成

插件1天前发布 小马良
6 0

ComfyUI-SoulX-Podcast 是一个专为 ComfyUI 设计的自定义节点插件,将 SoulX-Podcast 的核心能力——长篇、多说话人、多方言的播客语音生成——封装为直观的可视化工作流。用户可通过简单脚本定义对话,并利用参考音频(如 Suno 生成片段)克隆说话人音色,一键生成高质量播客。

SoulX-Podcast:支持方言与副语言的真实感播客语音合成系统

核心特性

  • 双人播客生成:支持 S1/S2 两位说话人交替对话
  • 多方言支持:普通话、四川话、河南话、粤语等(需加载方言模型)
  • 脚本驱动:通过 [S1] / [S2] 标记定义对话内容
  • 音色克隆:使用提示音频(5–15 秒)提取并复用说话人音色
  • 长文本支持:可生成数分钟以上的连贯播客内容
  • 全节点化工作流:从加载模型到输出音频,全程在 ComfyUI 中完成
ComfyUI-SoulX-Podcast:双人多方言长文本播客,零训练一键生成

安装与依赖

系统要求

  • Python 环境(建议 3.10+)
  • CUDA 支持的 GPU(用于加速推理)

关键依赖(务必注意版本)

s3tokenizer
diffusers
torch>=2.0 (with CUDA)
transformers==4.57.1   # ⚠️ 必须为此版本!
onnxruntime-gpu        # 或 onnxruntime(CPU 模式)
einops
librosa
scipy

❗ 重要transformers 版本必须为 4.57.1,其他版本可能导致兼容性错误。

模型准备

将模型文件放入 ComfyUI 标准目录:

ComfyUI/
└── models/
    └── TTS/
        ├── SoulX-Podcast-1.7B/           # 普通话模型
        │   ├── soulxpodcast_config.json
        │   ├── flow.pt
        │   ├── hift.pt
        │   ├── campplus.onnx
        │   └── [LLM 权重文件...]
        └── SoulX-Podcast-1.7B-dialect/   # 方言模型(含川话、粤语等)

💡 如需生成方言内容,请在 SoulX Podcast Loader 节点中选择 *-dialect 模型。

快速开始

基础工作流(5 步完成)

  1. SoulX Podcast Loader
    • 选择模型(如 SoulX-Podcast-1.7B-dialect
    • 设置 LLM 引擎(hf 或 vllm
  2. 加载提示音频
    • 使用 ComfyUI 内置 Load Audio 节点
    • 为 S1 和 S2 分别提供 5–15 秒清晰人声(可来自 Suno、录音等)
  3. SoulX Podcast Input Parser
    • 输入对话脚本,格式如下:
      [S1] 大家好,欢迎收听本期节目。
      [S2] 今天我们要聊一聊 AI 语音合成。
      [S1] 没错,最近的技术进展非常快……
      
  4. SoulX Podcast Generate
    • 调整生成参数(温度、重复惩罚等)
    • 启动生成
  5. 预览/保存音频
    • 连接至 Preview Audio 或 Save Audio 节点

📎 可直接导入示例工作流:example/example_workflow.json

节点详解

1. SoulX Podcast Loader(模型加载器)

参数说明
model_name从 models/TTS/ 下拉选择模型
llm_enginehf(HuggingFace)或 vllm(更快,需安装)
fp16_flow启用 FP16 可节省显存,但可能轻微影响音质
seed随机种子(0–4294967295)

输出:SOULX_MODEL 对象(供后续节点使用)

2. SoulX Podcast Input Parser(输入处理器)

输入模式

  • Simple 模式(推荐):直接填写多行文本脚本
  • JSON 模式:适用于程序化生成

自动处理

  • 解析 [S1]/[S2] 标记
  • 从提示音频提取说话人嵌入(via campplus.onnx
  • 将文本转为 token ID 序列
  • 生成梅尔频谱特征

输出:PODCAST_INPUT 对象

3. SoulX Podcast Generate(生成器)

参数默认值说明
temperature0.6控制生成随机性(0.5–0.7 适合对话)
repetition_penalty1.25抑制重复(1.15–1.35 推荐)
max_tokens3000单句最大长度(按需调整)
top_k / top_p100 / 0.9采样策略(通常保持默认)

输出:24kHz WAV 格式音频(符合 ComfyUI AUDIO 标准)

参数调优建议

目标推荐设置
高音质关闭 fp16_flow,使用高质量提示音频
稳定对话temperature=0.6repetition_penalty=1.25
快速生成启用 vllm 引擎 + 开启 fp16_flow
方言准确务必加载 *-dialect 模型,并在脚本中使用对应方言词汇

常见问题

Q1: 模型加载失败?

→ 检查路径是否为 ComfyUI/models/TTS/[模型名]/,并确认所有文件(.pt.onnx.json)齐全。

Q2: 音色不稳定?

→ 使用 10 秒以上、无背景噪音 的提示音频,避免音乐或多人混杂。

Q3: 生成速度慢?

→ 尝试 vllm 引擎(需额外安装),或降低 max_tokens

Q4: 脚本格式报错?

→ 必须使用 [S1] 和 [S2] 标记,不可省略方括号。

技术架构

生成流程

对话脚本 → Qwen3-1.7B LLM → 语义 Token → CausalMaskedDiffWithXvec (Flow) → 梅尔频谱 → HiFT 声码器 → 24kHz 音频波形

核心组件

  • LLM:Qwen3-1.7B(生成自然对话)
  • 声学模型:Flow(基于扩散,支持长上下文)
  • 声码器:HiFT(高保真波形合成)
  • 说话人嵌入:CampPlus ONNX(从提示音频提取音色)
© 版权声明

相关文章

暂无评论

none
暂无评论...