RVC-Project / Retrieval-based-Voice-Conversion-WebUI

Easily train a good VC model with voice data <= 10 mins!
MIT License
24.14k stars 3.57k forks source link

关于gui_v1.py使用ASIO驱动的踩坑反馈 #2139

Open SimpleRealDT opened 4 months ago

SimpleRealDT commented 4 months ago

遇到的问题

  1. 如果先选择了使用设备采样率,然后切换设备类型,切换后界面仍选中“使用设备采样率”,但是实际上代码逻辑会重置回“使用模型采样率”
  2. 使用ASIO的时候,大部分模型的采样率都是40000,而使用asio驱动好像必须要输入采样率和asio的采样率一致,故ASIO模式下,使用模型采样率大概率失败,页面直接消失;
  3. ASIO的采样率是通过default samplerate来进行获取的,但是很多独立声卡的default samplerate值与实际工作运行的值不一样,导致使用get_device_samplerate获取的asio声卡默认采样率实际上并不是设备的工作采样率而导致失败
  4. 使用ASIO设备会爆音,即使把buffer调整的很大;【目前不知道怎么优化解决】
  5. ASIO的输入和输出设备好像需要完全一样,如果不一样会报错说invalid pair

我的临时爬坑

  1. 切换到ASIO后手动选择一下模型采样率再手动选回设备采样率
  2. 在代码里把get_device_samplerate的return直接写死成我的声卡工作采样率

可参考的优化:

  1. 切换到ASIO模式后,让用户自己选他的声卡设备采样率
  2. 切换到ASIO模式后,前端检测输入设备和输出设备是否对的上

以上是我踩坑发现并临时解决的的一些问题,让gui_v1能在voicemeeter+steinberg声卡上跑ASIO模式,但仍然被爆音问题所困,目前暂时未能跑起来,关于问题归因可能不对,瞎猫子撞上了,如有错误肯请指点!

最后感谢项目主如此精彩的Work!如果有空可以抽空修复一下,再次感谢!

ohgodaaaa commented 4 months ago

如果是不支持ASIO的板载声卡,在安装ASIO4ALL,改用ASIO模式后,延迟也会有优化吗?