DragonianVoice

用 C++ 把 SVC/TTS 模型跑起来,性能拉满,部署无忧。

DragonianVoice 是一个基于 C++ 的歌声转换(SVC)和语音合成(TTS)推理库,旨在为生产环境提供高性能、低延迟的模型部署方案。它集成了多种主流模型,包括 RVC、So-VITS、DiffSVC、ReflowSVC、VITS、Bert-VITS2、DiffSinger 等,并支持 ONNX Runtime 和 PyTorch 后端,方便开发者将训练好的模型无缝迁移到 C++ 应用中。该库解决了 Python 推理在性能、内存占用和跨平台部署上的痛点,提供统一的 C++ API,支持实时推理、批量处理,并附带音频预处理和后处理功能。核心能力包括多模型加载、特征提取、声码器集成(HiFi-GAN)以及高效的推理优化,适用于桌面软件、游戏、嵌入式设备等对资源敏感的场景。项目仍处于成长阶段,文档和示例逐步完善,适合有 C++ 经验的开发者集成使用。

开源 free 音频音乐
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1128
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类音频音乐
开发团队PriesiaMioShirakana
所属国家
官网地址
定价模式free
价格说明开源项目,AGPL-3.0许可,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议AGPL-3.0
主要语言C
技术栈/模型bertvits2,diffsinger,diffsvc,hifigan,onnxruntime,pytorch,reflowsvc,rvc,sovits,tacotron2,tts,vits
GitHub 星标★ 1128
30天Star增速
HF 下载量
上线时间2022-08-05 00:00:00
最近更新2026-09-19 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:进阶 约 30 分钟 部署方式:库/依赖 7 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • 支持 C/C++ 的编译环境(仓库以 Lib 形式提供,支持 C/Cpp/C# 调用)
  • 自行将模型转换为 ONNX 格式,并自行为每个模型编写 JSON 配置文件
  • 自行下载前置模型(如 hifigan、hubert)并放入对应文件夹
  • 确认 ONNX Runtime 版本,Cuda 支持需参考 OnnxRuntime 官方 Release
  • 使用本项目须先同意 README 中列出的使用条款

安装与启动步骤

  1. 1确认项目形态

    本仓库已永久停止 UI 维护,成为纯 Lib 项目,代码已迁至 DragonianLib;但 SVC 与 TTS 的 Release 仍在本仓库发布。

  2. 2引入对应头文件

    按需引用 Tacotron、Vits、VitsSvc、DiffSvc、DiffSinger 等头文件,使用 InferClass 下的对应类。

    #include 
    #include 
    #include 
    #include 
    #include 
  3. 3准备模型文件

    模型统一放在 Mods 文件夹下的子文件夹中,模型本体需要你自己转换为 ONNX 格式后放好,不能直接用 Python 权重。

  4. 4编写模型配置

    每个模型目录下放一个 xxx.json 配置文件,Folder、Name、Type、Rate、Symbol 等字段需按模板自行编写,必须与训练时参数一致。

    {
      "Folder": "Atri",
      "Name": "亚托莉-Tacotron2",
      "Type": "Tacotron2",
      "Rate": 22050,
      "Symbol": "_-!'(),.:;? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
      "Cleaner": "",
      "AddBlank": false,
      "Hifigan": "hifigan"
    }
  5. 5放置前置模型

    Tacotron2 需把 hifigan 放到 hifigan 文件夹;RVC、SoVits 需把 hubert / hubert4.0 放到 Hubert 文件夹,否则加载失败。

  6. 6调用推理接口

    构造函数依次传入配置文件 json、进度条回调、参数回调(TTS 可留空)、设备,随后调用 Inference 函数执行推理。

    InferClass::Tacotron2;
    InferClass::Vits;
    InferClass::VitsSvc;
    InferClass::DiffusionSvc;
    InferClass::DiffusionSinger;
  7. 7参考命令行示例

    仓库未提供安装命令,可参考 README 给出的 RVC Onnx 命令行推理示例工程了解实际调用方式。

关键配置

配置项必填说明示例
Folder是模型所在子文件夹名,位于 Mods 目录下Atri
Name是模型显示名称亚托莉-Tacotron2
Type是模型类型,决定加载哪种类Tacotron2
Rate是采样率,须与训练时一致22050
Symbol是模型的 Symbol 表,Tacotron2/Vits 中必须填写_-!'(),.:;? ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv
Hop是HopLength,SoVits 中必须填且须与训练配置一致320

如何确认成功

README 未给出启动命令;模型能成功加载且调用 Inference 后正常输出音频即视为可用,加载报错多为配置或前置模型缺失。

常见问题

Q:路径里有中文会导致报错吗?

A:项目本体支持中文路径。2023 年 3 月前的 OnnxRuntime 使用 Win32 A 系列函数不支持非 ANSI 路径,新版已改用 W 系列函数解决,升级即可。

Q:怎么启用 Cuda 加速?

A:README 未给出具体步骤,建议前往 OnnxRuntime 官方仓库的 Releases 页面查看对应版本与 Cuda 支持说明。

Q:SoVits3.0/4.0 在 Dml 上结果不对怎么办?

A:Dml 对部分不支持算子不报错而返回不可预料结果。需使用最新(2023/7/17)版本的 SoVitsOnnx 导出重新导出模型。

Q:Diffusion/Reflow 模型输出全是噪声?

A:推理总步数不要超过模型训练时的最大步数(实际步数=总步数/加速倍率,这里的总步数指 K_Step),先查看配置里的 MaxStep 或 K_Step_Max。

Q:多角色模型怎么配?

A:在配置中填写 Characters 列表,元素为角色名称;单角色模型可以不填。Index/KMeans 聚类文件需按角色数量分别放入模型文件夹。

注意事项

  • 使用本项目必须先同意 README 中的条款:禁止出售程序,禁止用于商业游戏、低创游戏及 Galgame 制作,禁止制作电子垃圾。
  • 开发者主张生成的音频本身不具版权、应划归公共领域,但歌词、乐曲版权仍归原版权方所有。
  • 仓库已停止 UI 项目维护,转为纯 Lib,代码仓库地址为 DragonianLib;SVS 支持请查看 MoeVoiceStudio 分支。
  • 最新版本已与 fish-speech 联动,用 ggml 重写组成 fish-speech.cpp 子项目。

核心亮点

  • 统一 C++ 推理框架,覆盖 RVC、So-VITS、VITS 等多个主流模型,免去 Python 环境依赖
  • 支持 ONNX Runtime 和 PyTorch 双后端,灵活适配不同部署场景
  • 集成 HiFi-GAN 声码器,提供完整的音频合成链路,开箱即用

不足之处

  • C++ 接口对非 C++ 开发者上手门槛较高,需自行编译和配置依赖
  • 文档和社区生态尚在建设中,示例和教程相对有限

适用场景

  • 将 SVC/TTS 模型集成到桌面音频软件,实现实时变声或语音合成
  • 在资源受限的嵌入式设备上部署语音模型,降低内存和 CPU 占用
  • 构建高性能语音服务,替代 Python 推理以提升吞吐量

替代项目

RVC (Retrieval-based Voice Conversion)、so-vits-svc、VITS (PyTorch 实现)

项目介绍

DragonianVoice 是音频音乐领域的开源项目,由 PriesiaMioShirakana 开发,2022 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,128)位列前 30%,在音频音乐分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-19。AGPL-3.0许可,完全免费,可自行部署使用。

它主要面向的使用场景是:将SVC/TTS模型集成到桌面音频软件,实现实时变声或语音合成。同类可对比的替代方案包括 RVC (Retrieval-based Voice Conversion)、so-vits-svc、VITS (PyTorch 实现)。

上一篇:Speech2Speech

下一篇:expo-kokoro-onnx

同类项目推荐

tango 开源

输入一句话,自动生成匹配的音频内容

A family of diffusion models for text-to-audio generation.

★ 1239 2026-08-09
AuK 开源

一个模型搞定语音生成、编辑与分离

AuK: An Open-Source Foundational Model for Speech Generation and Editing

★ 1236 2026-09-13
swift-tts 开源

Swift 项目三行代码接入系统 TTS,兼容 TCA 和 Combine

A straightforward package containing version for Swift modern concurrency, Point-Fre···

★ 52 2026-08-09
ai-dj 开源

现场演出中实时用 AI 生成音乐,保持人类掌控

AI music generation for live performance - Standalone (Ableton Link) + VST3/AU. 8 tr···

★ 245 2026-08-09