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

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

Open
#2,139 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
38.4k
Forks
5.3k
PR merge metrics
No merged PRs in 30d

Description

遇到的问题

  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!如果有空可以抽空修复一下,再次感谢!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with gui_v1.py, focusing on ASIO mode, the samplerate selection state, and get_device_samplerate/default samplerate handling. Reproduce the reported device-switching, sample-rate, input/output pairing, and crackling behaviors, then use the issue’s proposed checks as acceptance criteria; the current report does not identify tests or a narrower implementation entry point.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
audio-video-rtc, desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.