ComfyUI-OmniVoice-TTS:600+ 语言零样本语音合成,赋予你的工作流“声音”

插件2天前发布 小马良
18 0

ComfyUI-OmniVoice-TTS 是将小米团队开源的 OmniVoice 模型集成到 ComfyUI 的强大自定义节点。它支持 600+ 种语言 的零样本文本转语音(TTS),具备业界领先的音质、极速的推理速度(RTF 0.025)以及强大的语音克隆和声音设计能力。

  • GitHub:https://github.com/Saganaki22/ComfyUI-OmniVoice-TTS

无论是制作多语言有声书、克隆特定音色,还是生成带有情感的非语言表达(如笑声、叹息),该节点都能在你的本地 ComfyUI 工作流中轻松实现。

ComfyUI-OmniVoice-TTS:600+ 语言零样本语音合成,赋予你的工作流“声音”

OmniVoice:小米 K2-FSA 团队开源 600+ 语言零样本 TTS,一句话复刻全球声音

核心特性

  • 600+ 语言覆盖:目前零样本 TTS 模型中语言支持最广泛的,完美支持中文方言及全球小语种。
  • 高保真语音克隆:仅需 3-15 秒 的参考音频,即可精准复刻说话人的音色、语调和情感。
  • 声音设计 (Voice Design):无需参考音频,通过文本描述(如“年轻女性,高音调,英国口音”)直接合成全新声音。
  • 多说话人对话:支持在一段文本中通过 [Speaker_N]: 标签定义多个角色,自动生成自然的多角色对话音频。
  • 极速推理:优化后的架构使 RTF 低至 0.025(比实时快 40 倍),适合批量生成。
  • 非语言表达:内联支持 [laughter][sigh][sniff] 等标签,让语音充满情感和生命力。
  • 显存优化:支持自动 CPU 卸载、Bfloat16 量化模型,并集成 SageAttention (CUDA SM80+) 进一步加速。
  • 智能缓存:自动缓存 Whisper ASR 模型和 TTS 主模型,避免重复加载,提升工作流效率。

安装指南

方法一:ComfyUI Manager(推荐)

  1. 打开 ComfyUI Manager。
  2. 搜索 OmniVoice
  3. 点击安装并重启 ComfyUI。

方法二:手动安装

cd ComfyUI/custom_nodes
git clone https://github.com/saganaki22/ComfyUI-OmniVoice-TTS.git
cd ComfyUI-OmniVoice-TTS
python install.py

⚠️ 重要提示:安装脚本使用了 --no-deps 参数来安装 omnivoice 包,这是为了防止其依赖项强制降级你的 PyTorch 版本(特别是避免降级为 CPU 版),从而破坏 ComfyUI 的 GPU 加速功能。如果遇到问题,请检查 PyTorch 版本兼容性。

节点详解

1. OmniVoice Longform TTS (长文本合成)

适用于长篇内容,内置智能分块逻辑,避免显存溢出。

  • 关键参数
    • words_per_chunk: 每块词数(默认 100,设为 0 不分块)。
    • ref_audio: 可选,用于语音克隆。
    • denoise: 开启可添加去噪令牌,提升音质纯净度。

2. OmniVoice Voice Clone TTS (语音克隆)

专注于从参考音频中提取音色特征。

  • 输入
    • ref_audio: 3-15 秒的清晰人声(必需)。
    • ref_text: 参考音频的文本(留空则自动调用 Whisper 转录)。
  • 技巧:参考音频越清晰、情感越符合目标,克隆效果越好。

3. OmniVoice Voice Design TTS (声音设计)

无需参考音频,完全通过文本指令创造声音。

  • 输入
    • voice_instruct: 逗号分隔的属性描述。
    • 示例"female, young, high pitch, british accent, whisper" (女性,年轻,高音调,英音,耳语)。
    • 支持属性:性别、年龄、音调、风格(耳语)、英语口音、汉语方言(四川话、粤语等)。

4. OmniVoice Multi-Speaker TTS (多角色对话)

生成多人对话场景,自动处理角色切换和停顿。

  • 文本格式
    [Speaker_1]: 你好,今天天气不错。
    [Speaker_2]: 是啊,适合出去走走。
    [Speaker_1]: 那我们出发吧!
    
  • 动态输入:根据 num_speakers 设置,动态显示 speaker_1_audio 到 speaker_N_audio 输入端口,可为每个角色单独指定参考音频。
  • pause_between_speakers: 控制角色对话间的静音时长(默认 0.3 秒)。

5. OmniVoice Whisper Loader (Whisper 预加载)

用于预加载 Whisper ASR 模型,避免每次生成时重复下载或加载。

  • 用法:将其输出连接到其他节点的 whisper_model 输入端。
  • 模型选择:支持 tinysmallmediumlarge-v3large-v3-turbo (推荐)。

高级参数调优指南

参数作用推荐设置
steps扩散去噪步数32 (平衡); 16 (快速测试); 64 (最高质量)
guidance_scale文本遵循度2.0 (默认); 过高可能导致声音僵硬
speed语速因子1.0 (正常); >1.0 加速; <1.0 减速
position_temperature掩码位置随机性5.0 (默认); 0=确定性贪婪解码
class_temperatureToken 采样随机性0.0 (默认); >0 增加声音变化性
attention注意力后端auto; 若显卡支持 (SM80+) 可选 sage_attention 提速
dtype精度bf16 (推荐,省显存且质量好); fp32 (最大兼容)

🚀 SageAttention 加速

如果你的显卡是 NVIDIA Ampere (RTX 30 系列) 或更新架构 (SM80+),安装 sageattention 并在节点中选择 sage_attention 模式,可显著提升推理速度并降低显存占用。

pip install sageattention

常见问题与故障排除

  • 模型下载失败 (国内用户)
    在启动 ComfyUI 前设置镜像环境变量:

    export HF_ENDPOINT="https://hf-mirror.com"
    
  • 显存不足 (OOM)
    • 将 dtype 设置为 bf16 或 fp16
    • 开启 keep_model_loaded = False (牺牲速度换空间)。
    • 使用 device = cpu (仅作为最后手段,速度较慢)。
  • Whisper 重复下载
    务必使用 OmniVoice Whisper Loader 节点预加载模型,并连接到主节点的 whisper_model 输入。
  • FFmpeg 错误 (Windows)
    确保系统 PATH 中包含 FFmpeg,或在 ComfyUI 启动脚本中配置 PATH 环境变量,或直接输出 WAV 格式避开编码问题。
© 版权声明

相关文章

暂无评论

none
暂无评论...