Skip to content

Conversation

zpeng11
Copy link

@zpeng11 zpeng11 commented Aug 26, 2025

重写了T2S 模型的部分ONNX运行方法,实现了v1,v2,v2pro,v2proplus 的ONNX导出。使用deterministic random在wsl本地测试验证过数值符合先前实现。
欢迎交流或提出建议。
请详见 GPT_SoVITS/AR/models/t2s_model_onnx.pyGPT_SoVITS/AR/modules/patched_mha_with_cache_onnx.py 将python动态kvcache prefill逻辑转为计算图运行时判断,实现了prefill和step统一接口,统一导出。将kv cache 增长或开辟的实现逻辑交给模型调用者上层。将kvcache增长维度改为第0维,允许线性空间增长。增加采样参数输入。
GSV 本体模型导出为 xxx_t2s_init_stage.onnx, xxx_t2s_stage_decoder.onnx, 和xxx_vits.onnx。在全精度v2下大约分别11MB, 300MB, 158MB
init_stage 模型处理输入准备autoregressive需要参数:
image
stage_decoder 模型进行autoregressive
image
vits模型:
image
同时为音频处理的hubert模型和sv模型和傅里叶变换准备了xxx_audio_preprocess.onnx
image
并且准备了roberta模型的onnx导出script GPT_SoVITS/export_roberta_onnx.py
ONNXRuntime 使用可以参考本人playground
已知问题:

  1. 无法处理batch
  2. 可能无法反向传播?(暂时没测试)
  3. 在wsl导出过程不太稳定可能需要重试且容易爆内存吃kill信号(可能是io频繁触发的wsl平台bug)
  4. 推理流程相对固化可能面对语义空间形状或head数量更新需要做改动

进行中工作:

  1. v3v4导出
  2. 模型量化工作研究
  3. GSV-OIE 起步阶段,初步目标准备无Numpy/PyTorch依赖的文字预处理python工具库实现x86部署,远景目标移除所有平台依赖并为arm适配所有依赖的编译流程实现移动部署。

zpeng11 added 30 commits August 17, 2025 17:54
…utput under deterministic random, fixed topk to 15
@RVC-Boss
Copy link
Owner

牛的,期待完成

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants