Skip to main content

Rvc 的 ONNX 模型导出格式推理实现

Project description

RvcPyInfer

License: MIT
Python 3.13+
PyPI Version
ONNX

RVC 的 ONNX 模型导出格式推理实现。

  • 支持原 RVC 项目的 ONNX 模型推理。
  • 跨平台支持多种推理引擎(CPU, CUDA, DirectML, OpenVINO)。
  • 提供 Windows 下一键导出 ONNX 模型的 CLI 工具。
  • 兼容原项目的 .index 特征索引文件。

Python 版本需求

本项目要求 Python 版本 >= 3.13。由于项目代码中使用了 Python 3.12+ 引入的 TypeParam 等现代语法特性,因此无法向下兼容更低版本的 Python。
并且推理真的很难测试欸。

安装

本库已上传至 PyPI,你可以直接使用我们构建好的轮子。
pip 安装示例:

pip install RvcPyInfer[cpu]

使用 uv 添加到项目依赖示例:

uv add RvcPyInfer[cpu]

关于特征模型

你可以在这里找到 MoeSS 使用的 onnx 特征模型。它们是通用的。
通常情况下最常见的 v2 版本的生成器模型使用的是 vec-768-layer-12.onnx

关于推理引擎

你可能已经看到了那个未安装任何推理引擎的警告或者错误。
请在安装命令后面添加 [xxx] 来安装可选依赖。
例如:

pip install RvcPyInfer[dml]

目前我们支持以下推理引擎:

  • onnxruntime
    • [cpu]:ONNX Runtime (CPU),通用
    • [cuda]:ONNX Runtime (CUDA),Nvidia GPU 加速
    • [dml]:ONNX Runtime (DML),Windows DirectML 加速
  • openvino
    • [openvino]:OpenVINO,Intel 硬件加速

请注意 onnxruntime 的三个可选依赖是互斥的,你只能选择其中的一个。
关于 openvinoIR 格式,本库会转换 IR 格式并存档在 .onnx 同目录下的同名文件中,以便在下一次加载时加速,该行为目前无法被禁用。

关于特征索引

原项目的 .index 文件可直接使用,无需转换。
但你需要使用 [index] 来安装我们需要用于读取特征索引的依赖—— faiss
例如同时安装特征索引支持和 CPU

pip install RvcPyInfer[cpu,index]

快速使用

一个简单的示例:

import RvcPyInfer

context = RvcPyInfer.RvcContext() # 创建一个上下文

task = context.build_task(
    "./你的特征模型.onnx",
    "./你的 Rvc 生成器模型.onnx",
    48000, # 你的 Rvc 生成器模型的生成采样率
    "./你要推理的源文件.wav", # 可以填多个源文件
    # 后续可选参数需显式写明名称,例如: 
    sid=1,    # 说话者 id,一般情况下就是 0
    seed=4321 # 噪声种子,默认 1234
)
task.run_and_save(
    "./你要保存的结果.wav" # 请注意,它不会自动创建目录
)

CLI

我们已经预制了一些 CLI 在库中了,并随库一并打包。
以下是库内置的命令:

  • rvc-infer:用以快速推理模型而无需编写代码
  • rvc-model:与模型相关的命令

rvc-infer

最简格式: rvc-infer --vec-model <你的特征模型路径> --gen-model <你的生成器模型路径> --gen-model-sr <你的生成器模型的输出采样率> -i <输入音频文件路径> -o <输出音频文件路径>
Tips:可出现多个 -i 和 -o,只要它们的数量一致,多个 -i 和 -o 按出现顺序一一对应。

rvc-model

该命令用于查看原项目的 .pth 模型的生成采样率,和在 Windows 上快速导出 onnx 模型,以及优化导出的 onnx 模型。

rvc-model show-sr

安全地查看原项目的 .pth 模型的采样率
格式: rvc-model show-sr -m <你的pth模型路径>

rvc-model export

导出 ONNX 模型
⚠️注意:你必须安装原项目的整合包或至少有一个能运行原项目的环境以便 PyTorch 导出 .onnx 模型。
它并不依赖项目内置的 tools/export_onnx.py 我们有自己的方法。
事实上原项目的 export_onnx.py 甚至没有做 v2 版本的支持
格式: rvc-model export -m <你的pth模型路径> -t <你希望输出到哪> -r <rvc 原项目的根路径> --runtime <可选的导出用的 python 解释器路径,默认使用 rvc 原项目整合包自带的解释器>

rvc-model optimize

优化导出的 ONNX 模型
⚠️注意:你必须安装 [optimize] 可选依赖,否则该子命令将不会出现在 -h 输出上
格式: rvc-model optimize -m <你的 onnx 模型路径> -t <你希望输出到哪>

未来的计划

暂无,欢迎各位提出 issue

许可证

在文件头部或文件所在目录未有额外说明的情况下,本项目代码部分使用 MIT 许可证授权于你,非代码部分使用 CC BY 4.0 授权于你。

🎉鸣谢

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rvcpyinfer-0.1.6.tar.gz (57.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rvcpyinfer-0.1.6-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file rvcpyinfer-0.1.6.tar.gz.

File metadata

  • Download URL: rvcpyinfer-0.1.6.tar.gz
  • Upload date:
  • Size: 57.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for rvcpyinfer-0.1.6.tar.gz
Algorithm Hash digest
SHA256 ac6edb3c17a3138faca2b46afc53120a07f431823fb3175ce597a9fd03ea5186
MD5 131b574eed37d1932ee59bff4fa4cc2c
BLAKE2b-256 fefc061f5eef220cd73c519142a115f13a813303dca6a77ecaa573c0891389c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for rvcpyinfer-0.1.6.tar.gz:

Publisher: release.yml on TwoCreepers/RvcPyInfer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rvcpyinfer-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: rvcpyinfer-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 37.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for rvcpyinfer-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 378835e2481475aae0b422fe71ec337cb06c7fc84623bc2cf4294e65f4a261dd
MD5 80f2f10275baf42259e9f6533af806b3
BLAKE2b-256 32a4d6bbc789fbeba31a87b51c9c5ad1d02325331abc26d687e497997decad4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rvcpyinfer-0.1.6-py3-none-any.whl:

Publisher: release.yml on TwoCreepers/RvcPyInfer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page