DDSP-SVC
DDSP-SVC 是一款开源的实时端到端歌声转换工具,基于可微分数字信号处理(DDSP)技术,旨在让个人电脑也能轻松运行高质量的 AI 变声软件。它主要解决了传统歌声转换模型对硬件要求高、训练耗时久以及实时推理资源消耗大的痛点。与知名的 SO-VITS-SVC 相比,DDSP-SVC 大幅降低了对显卡等硬件的依赖,训练速度提升了数个数量级,接近 RVC 的效率,同时在实时变声时的资源占用也显著更低。
虽然基础 DDSP 模型的合成音质有限,但该项目通过引入预训练声码器增强或浅层扩散模型进行后处理,成功将音质提升至媲美主流模型的水平,尤其在特定数据集上表现优异。无论是希望快速部署本地变声服务的开发者、研究低资源语音合成的科研人员,还是想要体验个性化歌声转换的普通用户,都能从中受益。只需准备合法的授权音频数据,按照指引配置预训练模型并进行简单预处理,即可开始训练属于自己的歌声转换模型。请注意,务必使用合法获取的数据进行训练,并遵守相关法律法规,切勿用于侵权或非法用途。
使用场景
独立音乐人小林想将自己录制的粗糙 Demo 快速转换为特定歌手的音色,以制作高质量试听小样,但他仅拥有一台配置普通的家用游戏本。
没有 DDSP-SVC 时
- 硬件门槛过高:主流的高精度歌声转换模型(如 SO-VITS-SVC)对显存要求极高,小林的电脑在训练时频繁爆显存或直接无法运行。
- 时间成本巨大:即便勉强运行,训练一个可用模型往往需要数天甚至更久,严重拖慢创作迭代节奏。
- 实时体验卡顿:尝试进行实时变声测试时,延迟高达数百毫秒且风扇狂转,根本无法用于直播或即时监听。
- 音质与效率难兼得:若为了速度降低模型复杂度,合成出的声音又充满机械感,缺乏情感细节,无法满足发行标准。
使用 DDSP-SVC 后
- 低配设备流畅跑:得益于可微数字信号处理架构,DDSP-SVC 在小林的 RTX 4060 显卡上即可轻松完成训练与推理,资源占用显著降低。
- 训练速度飞跃:模型训练时间从“天”级缩短至“小时”甚至分钟级,让小林能在一下午内尝试多种音色方案。
- 低延迟实时变声:在进行实时演唱测试时,系统延迟极低且运行平稳,实现了接近原声的自然听感与即时反馈。
- 音质大幅增强:结合预训练的 NSF-HiFiGAN 声码器或浅层扩散模型,最终输出的歌声清晰自然,细节丰富度媲美大型模型。
DDSP-SVC 通过极致的效率优化,让普通创作者也能在个人电脑上低成本、高效率地实现专业级的歌声转换与实时互动。
运行环境要求
- Windows
需要 NVIDIA GPU,推荐 RTX 4060,需支持 CUDA 13.0
未说明(若数据集过大需大内存或关闭 cache_all_data)

快速开始
语言:英语 简体中文
DDSP-SVC
0. 引言
DDSP-SVC 是一个开源的歌声转换项目,致力于开发可在个人电脑上普及使用的免费 AI 变声软件。
与著名的 SO-VITS-SVC 相比,它的训练和合成对计算机硬件的要求要低得多,训练时间可以缩短几个数量级,接近 RVC 的训练速度。
此外,在进行实时变声时,该项目的硬件资源消耗明显低于 SO-VITS-SVC,但可能略高于最新版本的 RVC。
尽管 DDSP 的原始合成质量并不理想(在训练过程中可以通过 TensorBoard 听到原始输出),但在使用预训练的声码器增强器(旧版)或浅层扩散模型(新版)提升音质后,对于某些数据集而言,其合成质量可以达到不亚于 SOVITS-SVC 和 RVC 的水平。
免责声明:请确保仅使用 合法获取的授权数据 来训练 DDSP-SVC 模型,并且不得将这些模型及其生成的任何音频用于非法目的。本仓库的作者不对因使用这些模型检查点及音频而引起的任何侵权、欺诈或其他违法行为承担责任。
更新日志:我懒得翻译了,请查看中文版 README。
1. 安装依赖
我们建议先从 官方网站 安装 PyTorch,然后运行:
pip install -r requirements.txt
Python 3.11(Windows)+ CUDA 13.0 + PyTorch 2.9.1 + TorchAudio 2.9.1 可以正常工作。
2. 配置预训练模型
- 特征编码器(仅选择一个):
(1) 下载预训练的 ContentVec 编码器,并将其放入 pretrain/contentvec 文件夹中。
(2) 下载预训练的 HubertSoft 编码器,并将其放入 pretrain/hubert 文件夹中,同时修改配置文件。
- 声码器:
下载并解压预训练的 NSF-HiFiGAN 声码器,
或者使用 https://github.com/openvpi/SingingVocoders 项目对声码器进行微调以获得更高的音质。
然后重命名检查点文件,并将其放置在配置文件中 ‘vocoder.ckpt’ 参数指定的位置。默认值为 pretrain/nsf_hifigan/model。声码器的 ‘config.json’ 文件需要位于同一目录下,例如 pretrain/nsf_hifigan/config.json。
- 基频提取器:
下载预训练的 RMVPE 提取器,并将其解压到 pretrain/ 文件夹中。
3. 数据预处理
将所有训练数据集(.wav 格式的音频片段)放入以下目录:data/train/audio。将所有验证数据集(.wav 格式的音频片段)放入以下目录:data/val/audio。你也可以运行
python draw.py
来帮助你选择验证数据(你可以调整 draw.py 中的参数来修改提取文件的数量及其他参数)。
然后运行预处理器:
python preprocess.py -c configs/reflow.yaml -j <进程数>
注意 1:默认配置适用于 RTX-4060 显卡。
注意 2:请确保所有音频片段的采样率与 yaml 配置文件中的采样率一致!如果不一致,程序仍可安全执行,但训练过程中的重采样会非常缓慢。
注意 3:建议训练数据集中的音频片段总数约为 1000 个,尤其是较长的音频可以切割成较短的片段,这样可以加快训练速度,但每个音频片段的时长不应少于 2 秒。如果音频片段过多,则需要较大的内存,或者在配置文件中将 ‘cache_all_data’ 选项设置为 false。
注意 4:建议验证数据集中的音频片段总数约为 10 个,不要放太多,否则验证过程会非常缓慢。
注意 5:如果你的数据集质量不是很高,可以在配置文件中将 ‘f0_extractor’ 设置为 ‘rmvpe’。
注意 6:目前支持多说话人训练。配置文件中的 ‘n_spk’ 参数控制是否为多说话人模型。如果你想训练一个 多说话人 模型,音频文件夹需要以 不大于 ‘n_spk’ 的正整数 命名,用来表示说话人 ID,目录结构如下:
# 训练数据集
# 第 1 位说话人
data/train/audio/1/aaa.wav
data/train/audio/1/bbb.wav
...
# 第 2 位说话人
data/train/audio/2/ccc.wav
data/train/audio/2/ddd.wav
...
# 验证数据集
# 第 1 位说话人
data/val/audio/1/eee.wav
data/val/audio/1/fff.wav
...
# 第 2 位说话人
data/val/audio/2/ggg.wav
data/val/audio/2/hhh.wav
...
如果 ‘n_spk’ = 1,则仍然支持 单说话人 模型的目录结构,如下所示:
# 训练数据集
data/train/audio/aaa.wav
data/train/audio/bbb.wav
...
# 验证数据集
data/val/audio/ccc.wav
data/val/audio/ddd.wav
...
4. 训练
python train_reflow.py -c configs/reflow.yaml
训练开始后,每经过 ‘interval_val’ 步骤会临时保存一次权重,每经过 ‘interval_force_save’ 步骤则会永久保存一次权重。这两个配置项可以根据实际情况进行调整。
你可以安全地中断训练,之后再次运行相同的命令行即可恢复训练。
你也可以在中断训练后对模型进行微调:重新预处理新数据集或更改训练参数(batchsize、lr 等),然后再运行相同的命令行。
5. 可视化
# 使用 TensorBoard 查看训练状态
tensorboard --logdir=exp
首次验证完成后,TensorBoard 中将显示测试音频样本。
6. 非实时 VC
python main_reflow.py -i <input.wav> -m <model_ckpt.pt> -o <output.wav> -k <音高变化(半音)> -id <说话人ID> -step <infer_step> -method <method> -ts <t_start>
‘infer_step’ 是修正流 ODE 的采样步数,‘method’ 可以是 ‘euler’ 或 ‘rk4’,‘t_start’ 是 ODE 的起始时间点,必须大于或等于配置文件中的 t_start,默认值为 0.0,建议保持一致。
你可以使用 “-mix” 选项来自定义自己的声音音色,示例如下:
# 将第1和第2个声码器的音色以0.5:0.5的比例混合
python main_reflow.py -i <input.wav> -m <model_file.pt> -o <output.wav> -k <音高变化(半音)> -mix "{1:0.5, 2:0.5}" -eak 0
有关f0提取器和响应阈值的其他选项,请参阅:
python main_reflow.py -h
7. 实时语音转换
使用以下命令启动一个简单的GUI界面:
python gui_reflow.py
前端采用了滑动窗口、交叉淡入淡出、基于SOLA的拼接以及上下文语义参考等技术,能够在低延迟和较低资源占用的情况下,实现接近于非实时合成的音质。
8. 致谢
版本历史
5.02024/02/084.02023/08/153.02023/05/132.02023/03/211.12023/03/081.02023/03/05常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。