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.5.tar.gz (57.1 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.5-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rvcpyinfer-0.1.5.tar.gz
Algorithm Hash digest
SHA256 d3e8b5dd4caafac32faab38a7eca0b5ff07f1e0abdeb615c62b6a38585c1067c
MD5 238f905d0d7d9fdadaa1d24aa8c3958f
BLAKE2b-256 f81655853d84b8e8ac0a7641caaa06c597012773b9810df54c13e78af4cbad54

See more details on using hashes here.

Provenance

The following attestation bundles were made for rvcpyinfer-0.1.5.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.5-py3-none-any.whl.

File metadata

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

File hashes

Hashes for rvcpyinfer-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9ccb9a2e3931958b70ebd773d205c0bd6d0d6730a87c5dedd35f1881d8b6d0f3
MD5 7dd326160fa15ed2fd79c5cffc4d9910
BLAKE2b-256 8508e9b46b2e8608481cfa3e3119d6489e85befea9baa27a4dafbe1b972f4295

See more details on using hashes here.

Provenance

The following attestation bundles were made for rvcpyinfer-0.1.5-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