How to reduce more delay on Realtime-Voice-Changer AI with ASIO
I would recommend using Wasapi if you are a normal user. https://rentry.co/LessDelayWasapi
What does ASIO do?
ASIO accesses your audio devices directly, while the driver that you always use on the daily (which is "MME") goes through multiple layers within the Windows audio subsystem, causing more delay. It has lower algorithmic delay.
This will in total cut down 50-80ms delay. Shoutout to Mares & deiteris/Emojikage
Last update: August 22nd, 2024
Korean version: Github yangpa31542, click here
ASIO DOES NOT WORK ON W-OKADA PREBUILTS
ASIO does not work on the prebuilts (latest being 18a. This also means any previous versions also do not work). It works in the Alpha though, which might be unstable as a whole as of now. It also works in deiteris w-okada Fork
First step (mandatory)
Before we can get it to work, you have to select the same sample rate
of your microphone and the Playback virtual cable.
Go to your sound devices and find out/change the sample rate.
If you don't know how to open your sound devices, then press WIN+R, type "mmsys.cpl" then enter
On the Recording
tab, right click on your microphone. Go to properties
. Go to the last tab Advanced
, and check what sample rate it shows (use 48000 on all steps). Activate the options for exclusive mode (picture below).
If you use SteelSeries Sonar or Voicemeeter, make sure to change those aswell.
Now go to the Playback
tab, right click on Line 1 / CABLE. This depends on which virtual cable you have installed. Go to properties
. Go to the tab Advanced
, and adjust that sample rate to your microphone (picture below).
Steps
Step 1: Download FlexASIO
FlexASIO Download
Then, run the exe and install.
Step 2: Download FlexASIO GUI for easier configuration
Download .NET Desktop runtime 6.x from this page:
.NET Desktop runtime 6.x
Then, run the exe and install.
Afterwards, download FlexASIO GUI by flipswitchingmonkey:
FlexASIO GUI Download
Then, run the exe and install.
Step 3: Configuring FlexASIO GUI
I will give no brainer settings as most people do not like to read and understand. So if you do not know what to do, copy the following. An image is attached down below. Big thank you to Mares.
Run FlexASIO GUI
to open up the window below. If it doesn't open up, then you haven't downloaded .NET Desktop runtime 6.x
from the previous step.
- Backend: Windows WASAPI
- ✅ Set Buffer Size: 256
- Input Device: Select your Microphone. If you run Steelseries Sonar or Voicemeeter or any other similar system, then choose that instead.
- Output Device: Select your Virtual Cable. If you are still using CABLE instead of Line 1, I beg you to switch over because it is unironically better than CABLE in any way possible.
- Latency: ✅ Set Input Latency: 0.2 (read notation below)
- Latency: ✅ Set Output Latency: 0.2 (read notation below)
- Output: ✅ Set: ; ✅ AutoConvert
Explanation: Having the input latency at 0.0 will make your microphone crackle as it can't process fast enough.
Often times, using 0.1 works fine. If you experience crackles, then mess around with this value ranging from 0.1 to 0.2, e.g. 0.14 until it doesn't crackle. This affects further delay, the lower you can go, the better for you. If you don't want to, you can keep it at 0.2.
SAVE TO DEFAULT FLEXASIO.TOML. Do not forget this. Afterwards, you can close FlexASIO GUI.
Step 4: Setting it up on the voice changers
Step 4.1: Setting it up on w-okada
ASIO ON THE MOST RECENT W-OKADA (18a) DOES NOT WORK! IT WORKS IN THE NEW ALPHA & W-OKADA FORK BY deiteris
- Select AUDIO: Server
- Select S.R. 48000. The screenshot is wrong
- Select the input and output from ASIO. You can select the first column that says "ALL" to filter out for ASIO only to make it easier.
Then, on your game or discord, you select:
- Input: Virtual Cable (Line 1 / CABLE Output)
- Output: Your Headphones/Speakers
Step 4.2: Setting it up on RVC realtime
You will select input and output from the same driver type, which is ASIO in this case. Yours might say FlexASIO (ASIO)
, it is the correct one.
- Input: FlexASIO
- Output: FlexASIO
Whichever button you use next to "Reload Device List" does not matter for ASIO. That is for matching your microphone to the voice model, if you wish to do that.
Then, on your game or discord, you select:
- Input: Virtual Cable (Line 1 / CABLE Output)
- Output: Your Headphones/Speakers
Common Errors
sounddevice.PortAudioError: Error opening Stream: Unanticipated host error [PaErrorCode -9999]: 'Failed to load ASIO driver' [ASIO error 0]
This is common for RVC realtime. Even if it makes no sense, this is caused by the default index file. If you never changed the index, choose a random custom one - it does not even have to be the same as the voice model you are using. Just any random one will fix this.
sounddevice.PortAudioError: Error opening Stream: Invalid sample rate [PaErrorCode -9997]
- You did not match the sample rate of your virtual cable to your microphone.
Help
For any questions, join the AI Hub server and post in #help-wokada
https://discord.gg/aihub