ComfyUI-speech-dataset-toolkit 插件保姆级教程
1. 插件简介
ComfyUI-speech-dataset-toolkit 是一个专门为音频处理和语音数据制作而设计的插件包。这个插件就像是给ComfyUI装上了一套完整的音频工作台,让你可以像处理图片一样方便地处理音频文件。
插件地址: https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit
这个插件能帮你做什么:
- 加载和保存各种音频文件(就像打开和保存图片一样简单)
- 裁剪音频片段(就像用剪刀剪纸一样)
- 拼接多个音频(就像用胶水粘纸条一样)
- 调整音频音量和质量(就像调节收音机音量一样)
- 制作语音训练数据(为AI学说话准备材料)
- 可视化音频波形(把声音变成能看到的图形)
2. 安装方法
第一步:进入插件文件夹
cd custom_nodes
第二步:下载插件
git clone https://github.com/kale4eat/ComfyUI-speech-dataset-toolkit.git
第三步:进入插件目录
cd ComfyUI-speech-dataset-toolkit
第四步:安装必要组件
pip3 install torchaudio --index-url https://download.pytorch.org/whl/cu121
pip3 install -r requirements.txt
第五步:如果需要语音检测功能,还要安装
pip install onnxruntime-gpu
安装完成后:
- 重启ComfyUI
- 会自动创建
audio_input和audio_output文件夹 - 把你要处理的音频文件放在
audio_input文件夹里
3. 节点详细解析
3.1 Load Audio 节点 - 音频加载器
这个节点就像一个音频播放器的"打开文件"按钮,用来把音频文件导入到ComfyUI的工作流中。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件名 | filename | 音频文件名 | 根据需要选择 | 选择你要处理的音频文件,就像选择要听的歌曲一样 | 指定要加载的音频文件路径 | 从下拉菜单选择audio_input文件夹里的音频文件 |
| 开始时间 | start_time | 数字(秒) | 0 | 从音频的第几秒开始播放,就像快进到指定时间点 | 音频截取的起始时间点 | 如果想从第10秒开始,就填10 |
| 结束时间 | end_time | 数字(秒) | -1(全部) | 播放到第几秒结束,-1表示播放到最后 | 音频截取的结束时间点 | 如果想播放到第30秒结束,就填30 |
3.2 Save Audio 节点 - 音频保存器
这个节点就像一个录音机的"保存"按钮,把处理好的音频保存到你的电脑里。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 文件名前缀 | filename_prefix | 文本 | "audio_" | 保存的文件名前面加什么字,就像给文件取个统一的开头 | 输出文件名的前缀标识 | 输入"processed_",保存的文件就叫"processed_001.wav" |
| 音频输入 | audio | 音频数据 | 来自其他节点 | 接收要保存的音频数据,就像接收一个包裹 | 输入的音频数据流 | 连接前面处理节点的音频输出 |
| 文件格式 | format | wav/mp3/flac | wav | 选择保存的音频格式,就像选择保存图片是jpg还是png | 音频编码格式 | 一般选wav质量最好,mp3文件最小 |
3.3 Audio Trim 节点 - 音频裁剪器
这个节点就像一把精准的剪刀,能够切出你想要的音频片段。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 接收要裁剪的音频,就像把布料放在裁剪台上 | 输入的音频数据流 | 连接Load Audio节点的输出 |
| 开始时间 | start_seconds | 数字(秒) | 0 | 从第几秒开始剪切,就像标记剪切的起点 | 裁剪起始时间 | 想从第5秒开始剪,就填5 |
| 长度 | duration_seconds | 数字(秒) | 根据需要 | 剪切多长时间,就像测量要剪多少 | 裁剪的时长 | 想剪10秒长的片段,就填10 |
3.4 Audio Join 节点 - 音频拼接器
这个节点就像胶水一样,能把多个音频片段粘在一起变成一个完整的音频。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频1 | audio1 | 音频数据 | 来自其他节点 | 第一个要拼接的音频片段,就像第一块积木 | 第一个音频输入 | 连接第一个音频节点的输出 |
| 音频2 | audio2 | 音频数据 | 来自其他节点 | 第二个要拼接的音频片段,就像第二块积木 | 第二个音频输入 | 连接第二个音频节点的输出 |
| 间隔时间 | gap_seconds | 数字(秒) | 0 | 两个音频之间的静音间隔,就像段落之间的空白 | 音频间的静音间隔 | 想要1秒的停顿,就填1 |
3.5 Audio Split 节点 - 音频分割器
这个节点就像一个智能切片机,能够把一个长音频按照指定规则切成多个小片段。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要分割的音频,就像一条要切成段的面包 | 输入的音频数据流 | 连接Load Audio节点的输出 |
| 分割长度 | segment_length | 数字(秒) | 10 | 每个片段的长度,就像每片面包的厚度 | 每个分割片段的时长 | 想要10秒一段,就填10 |
| 重叠时间 | overlap_seconds | 数字(秒) | 0 | 相邻片段之间的重叠时间,就像切片时的重叠部分 | 片段间的重叠时长 | 想要1秒重叠,就填1 |
3.6 Audio Resample 节点 - 音频重采样器
这个节点就像一个音质调节器,能够改变音频的采样率,让音频变得更清晰或更节省空间。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要调整音质的音频,就像要调整画质的图片 | 输入的音频数据流 | 连接其他音频节点的输出 |
| 目标采样率 | target_sample_rate | 数字 | 16000 | 调整后的音质级别,数字越大音质越好但文件越大 | 重采样的目标采样频率 | 16000适合语音,44100适合音乐 |
| 重采样方法 | resampling_method | 选项 | linear | 调整音质的方法,就像选择画质调整的算法 | 重采样算法类型 | linear速度快,sinc_interpolation质量好 |
3.7 Audio Silence 节点 - 静音生成器
这个节点就像一个静音制造机,能够生成指定长度的静音音频。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 持续时间 | duration_seconds | 数字(秒) | 1.0 | 静音持续多长时间,就像设置倒计时的时间 | 静音片段的时长 | 想要3秒静音,就填3 |
| 采样率 | sample_rate | 数字 | 16000 | 静音的音质级别,要和其他音频保持一致 | 生成静音的采样频率 | 通常和项目中其他音频保持一致 |
| 声道数 | channels | 数字 | 1 | 单声道还是立体声,1是单声道,2是立体声 | 音频声道数量 | 1是单声道,2是立体声 |
3.8 WaveForm 节点 - 波形可视化器
这个节点就像一个音频显示器,能够把听不见的声音变成看得见的波形图。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要显示波形的音频,就像要拍照的物体 | 输入的音频数据流 | 连接任意音频节点的输出 |
| 图像宽度 | width | 数字 | 800 | 波形图的宽度,就像照片的宽度 | 输出图像的像素宽度 | 800像素适合预览,1200像素适合详细查看 |
| 图像高度 | height | 数字 | 400 | 波形图的高度,就像照片的高度 | 输出图像的像素高度 | 400像素适合预览,600像素适合详细查看 |
| 颜色 | color | 颜色选择 | 蓝色 | 波形线条的颜色,就像选择画笔的颜色 | 波形图的线条颜色 | 蓝色经典,绿色护眼,红色醒目 |
3.9 Spectrogram 节点 - 频谱图生成器
这个节点就像一个音频X光机,能够显示音频中不同频率的分布情况。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要分析的音频,就像要做X光检查的身体 | 输入的音频数据流 | 连接任意音频节点的输出 |
| 窗口大小 | n_fft | 数字 | 1024 | 分析的精细程度,数字越大分析越细致但速度越慢 | 快速傅里叶变换的窗口大小 | 1024适合一般使用,2048适合高精度分析 |
| 跳跃大小 | hop_length | 数字 | 512 | 分析的密度,数字越小分析越密集 | 窗口跳跃的步长 | 一般设置为n_fft的一半 |
| 颜色映射 | colormap | 选项 | viridis | 频谱图的颜色方案,就像选择地图的颜色主题 | 频谱图的颜色映射方案 | viridis适合科学分析,plasma适合视觉效果 |
3.10 MelFilterBank 节点 - 梅尔滤波器组
这个节点就像一个音频频率分析仪,专门用于语音分析和AI训练。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要分析的音频,就像要检测的声音样本 | 输入的音频数据流 | 连接任意音频节点的输出 |
| 梅尔滤波器数量 | n_mels | 数字 | 80 | 分析的频率段数量,就像把音频分成多少个频率档位 | 梅尔滤波器的数量 | 80适合语音识别,128适合音乐分析 |
| 最低频率 | f_min | 数字 | 0 | 分析的最低频率,就像收音机的最低频道 | 滤波器的最低频率 | 0包含所有低频,80过滤掉最低频 |
| 最高频率 | f_max | 数字 | 8000 | 分析的最高频率,就像收音机的最高频道 | 滤波器的最高频率 | 8000适合语音,22050适合音乐 |
3.11 Pitch 节点 - 音调检测器
这个节点就像一个音调识别器,能够检测音频中的音调变化。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 音频输入 | audio | 音频数据 | 来自其他节点 | 要检测音调的音频,就像要测量音高的声音 | 输入的音频数据流 | 连接任意音频节点的输出 |
| 检测方法 | method | 选项 | autocorrelation | 检测音调的方法,就像选择测量工具 | 音调检测算法 | autocorrelation适合语音,spectral适合音乐 |
| 帧长度 | frame_length | 数字 | 1024 | 每次检测的音频长度,就像每次测量的时间长度 | 分析帧的长度 | 1024适合一般使用,2048适合精确分析 |
| 跳跃长度 | hop_length | 数字 | 512 | 检测的密度,数字越小检测越频繁 | 帧间跳跃的长度 | 一般设置为frame_length的一半 |
4. 使用技巧和建议
4.1 音频质量建议
- 采样率选择:语音处理推荐16000Hz,音乐处理推荐44100Hz
- 文件格式:WAV格式质量最好,MP3格式文件最小
- 声道设置:语音通常用单声道(1),音乐用立体声(2)
4.2 工作流程建议
- 先加载后处理:总是从Load Audio节点开始
- 逐步处理:不要一次性做太多处理,分步骤进行
- 及时保存:处理完一个步骤就保存一次,避免丢失
- 预览检查:用WaveForm节点检查处理效果
4.3 性能优化
- 批量处理:相同操作可以批量进行
- 合理设置参数:过高的精度会影响处理速度
- 内存管理:处理大文件时注意内存使用
5. 常见问题解答
5.1 安装问题
Q:安装后找不到节点怎么办?
A:重启ComfyUI,确保插件文件夹在custom_nodes目录下,检查是否正确安装了依赖。
Q:提示缺少torchaudio怎么办?
A:按照安装步骤重新安装torchaudio:
pip3 install torchaudio --index-url https://download.pytorch.org/whl/cu121
5.2 使用问题
Q:音频文件加载不了怎么办?
A:确保音频文件放在audio_input文件夹里,支持的格式有wav、mp3、flac等。如果添加了新文件,按F5刷新页面。
Q:处理后的音频没有声音怎么办?
A:检查音频参数设置,特别是采样率是否正确,音量是否为0。
Q:处理速度很慢怎么办?
A:降低精度参数,比如减少n_fft的值,或者处理较短的音频片段。
5.3 参数设置问题
Q:不知道采样率该设置多少?
A:语音处理用16000Hz,音乐处理用44100Hz,如果不确定,可以先用WaveForm节点查看原始音频的采样率。
Q:频谱图看起来很奇怪怎么办?
A:调整colormap参数,尝试不同的颜色方案;或者调整n_fft参数,改变分析精度。
6. 高级应用示例
6.1 制作语音数据集
- 用Load Audio加载长音频
- 用Audio Split分割成小片段
- 用Audio Trim精确裁剪每个片段
- 用Audio Resample统一采样率
- 用Save Audio批量保存
6.2 音频质量分析
- 用Load Audio加载音频
- 用WaveForm查看波形
- 用Spectrogram分析频谱
- 用Pitch检测音调变化
- 根据分析结果调整处理参数
6.3 音频拼接制作
- 用Load Audio加载多个音频片段
- 用Audio Silence生成间隔静音
- 用Audio Join按顺序拼接
- 用Audio Resample统一质量
- 用Save Audio保存最终结果
这个插件功能强大,通过合理组合不同的节点,你可以完成各种复杂的音频处理任务。记住,熟练使用的关键是多练习,从简单的加载和保存开始,逐步尝试更复杂的处理流程。