Extensions/ComfyUI-AudioSuiteAdvanced
ComfyUI Extension

ComfyUI-AudioSuiteAdvanced

这个插件可以切割txt或srt文件,交给TTS做语音切片生成,并合成长语音 This plugin can cut txt or srt files, hand them over to TTS for speech slicing generation, and synthesize long speech

By whmc76·Created about a year ago·Updated 15 days ago· 29
whmc76/ComfyUI-AudioSuiteAdvanced
Nodes11
On cloudLocal install
CategoryAudioSuiteAdvanced
Stars29
Updated15 days ago
Readme

ComfyUI-AudioSuiteAdvanced

作者:CyberDickLang

版本号:1.0.2

本插件为 ComfyUI 提供长文本处理与音频合成相关的多功能节点,支持文本分割、音频拼接、音频合并、字幕时间戳对齐、音频分离、说话人分离等多种场景。


主要功能节点

1. Long Text Splitter

  • 功能:支持按句子、段落或自定义分隔符切分文本,支持字符过滤。
  • 输出:分割后的文本列表及其长度。
  • 典型用途:TTS前的文本预处理。

2. Subtitle File Loader

  • 功能:加载字幕文件,自动识别并提取文本内容,支持多种主流字幕格式(txt、srt、ass、ssa、vtt、lrc、sub等)。
  • 输出:字幕文本内容、原始文件路径。
  • 用法:可直接拖拽字幕文件到输入框。

3. Make Audio Batch

  • 功能:将两个AUDIO类型音频顺序加入队列,自动跳过空输入。
  • 输出:音频队列(LIST)

4. Combine Audio From List/Batch

  • 功能:将音频队列合并为一段音频,支持按字幕文件时间戳对齐(支持srt、ass、ssa、vtt、lrc、sub等格式),自动插入静音。
  • 参数
    • audio_batch:AUDIO类型音频队列
    • gap_duration:片段间隔(秒)
    • use_timestamps:是否根据字幕时间戳对齐
    • srt_file:字幕文件路径(支持多格式)
  • 输出:合并后的AUDIO
  • 用法示例
    1. 用 Subtitle File Loader 加载字幕文件,获取路径
    2. 用 Make Audio Batch 生成音频队列
    3. 用 Combine Audio From List/Batch 合成,勾选 use_timestamps 并输入字幕路径

5. Audio Concatenate Free

  • 功能:将两个AUDIO类型音频按指定方向拼接,支持插入静音间隔。
  • 参数
    • audio1audio2:AUDIO类型音频
    • direction:拼接方向(right/left)
    • gap_duration:间隔时间(秒)

6. Audio Separation

  • 功能:将音频分离为四个音轨:低音、鼓点、其他、人声。基于Hybrid Demucs模型。
  • 参数
    • audio:输入音频
    • chunk_fade_shape:音频分块重叠区域的淡入淡出效果(linear/half_sine/logarithmic/exponential)
    • chunk_length:每个音频块的长度(秒,1.0-30.0)
    • chunk_overlap:音频块之间的重叠时间(秒,0.0-1.0)
  • 输出:四个分离的音轨(bass、drums、other、vocals)
  • 典型用途:音乐制作、音频处理、人声提取等。

7. Index Select From List

  • 功能:按索引提取列表元素。

8. List Length

  • 功能:输出列表长度。

9. Speaker Separation_ASAdv

  • 功能:将多说话人音频分离为最多4个人物的独立音轨(如双人对话分别输出两个人的音频)。
  • 参数
    • audio:输入音频(建议16kHz单声道)
    • max_speakers:最大说话人数(1~4)
    • language:音频语言代码,如'zh'、'en'、'ja'等,'auto'为自动检测
    • compute_type:计算精度,float16更快但精度稍低
  • 输出:audio1、audio2、audio3、audio4(不足人数补静音)
  • 注意:WhisperX功能暂时禁用,当前使用pyannote.audio进行说话人分离。

安装方法

  1. 将本项目克隆到 ComfyUI 的 custom_nodes 目录下:
    git clone <本项目地址> ComfyUI/custom_nodes/ComfyUI-AudioSuiteAdvanced
    
  2. 安装依赖:
    pip install -r requirements.txt
    

说话人分离说明

当前状态

  • WhisperX功能暂时禁用:由于依赖问题,暂时移除WhisperX功能
  • 使用pyannote.audio:当前使用pyannote.audio进行说话人分离
  • 需要配置:需要HuggingFace auth token用于pyannote.audio

功能特点

  • 多语言支持:支持中文、英文、日文等多种语言
  • 自动检测:可自动检测音频语言,也可手动指定
  • 高兼容性:支持 Python 3.7+,无需降级 Python 版本

使用建议

  • 建议使用 16kHz 单声道音频以获得最佳效果
  • 对于较长的音频,处理时间可能较长,请耐心等待
  • 需要配置HuggingFace auth token

兼容性与说明

  • 支持主流音频格式(wav、mp3、ogg、flac、m4a等)
  • 支持主流字幕格式(txt、srt、ass、ssa、vtt、lrc、sub等)
  • 所有AUDIO类型节点需保证采样率一致
  • 节点参数均有详细说明,支持中英文双语(自动跟随系统)
  • Audio Separation节点需要torchaudio>=2.3.0和librosa>=0.10.0
  • Speaker Separation节点基于WhisperX,兼容性更好

版本信息

  • 当前版本:1.0.1
  • 2024-06-09:支持多格式字幕时间戳对齐音频合成,Subtitle File Loader支持多格式字幕解析。
  • 2024-12-19:新增Audio Separation节点,支持音频分离为四个音轨。
  • 2024-12-20:新增Speaker Separation节点,支持多说话人音频分离,支持本地模型优先。
  • 2025-01-10:升级Speaker Separation节点,使用WhisperX替代pyannote.audio,提升兼容性和易用性。

版本更新日志

v1.0.2 (2024-12-19)

  • 🔧 修复:解决了ComfyUI中出现两个AudioSuiteAdvanced分类目录的问题
  • 新增:为Character Vocal Extractor节点添加了offset_secondsduration_seconds参数
  • 🎯 优化:实现当duration_seconds为0时不截取音频的逻辑,完全兼容UTK的Audio Crop Process标准
  • 📦 重构:统一了所有节点的分类名为AudioSuiteAdvanced

v1.0.1

  • 初始版本发布
  • 支持长文本分割、音频拼接、音频分离等基础功能

参考与致谢


联系方式

  • B站/小红书/RunningHub/赛博迪克朗
  • YouTube/OpenArt/cyberdicklang
  • 邮箱:[email protected]

如有问题欢迎在评论区或issue区留言反馈!


❤️ 支持与关注 / Support & Follow

开源代码可以免费,但显卡、电费、服务器和咖啡豆暂时还没学会开源。

你好,我是赛博迪克朗。我平时给 AI 喂提示词、给 ComfyUI 接管线,也负责修复那些“昨天明明还能跑”的神秘问题。教程里看起来三分钟解决的事,背后往往是三十次失败和一句又一句“这不应该啊”。

如果这个项目帮你少踩了一个坑、少重装了一次环境,那些和报错窗口深情对视的夜晚就算没有白熬。欢迎通过下面的方式支持和关注:

抖音、小红书、快手、今日头条、微信视频号、X:搜索全网统一名称 “赛博迪克朗”

不赞助也完全没关系。 使用、Star、反馈、分享,甚至一句“这东西真能用”,都是继续更新的动力。谢谢你让这个项目不只是躺在我的硬盘里感动自己。