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.

IF YOU DONT SEE A PICTURE, LET ME KNOW ON DISCORD LINK AT THE BOTTOM


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).

IF YOU DONT SEE A PICTURE, LET ME KNOW ON DISCORD LINK AT THE BOTTOM


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.

IF YOU DONT SEE A PICTURE, LET ME KNOW ON DISCORD LINK AT THE BOTTOM


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.

IF YOU DONT SEE A PICTURE, LET ME KNOW ON DISCORD LINK AT THE BOTTOM

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

IF YOU DONT SEE A PICTURE, LET ME KNOW ON DISCORD LINK AT THE BOTTOM

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

Edit
Pub: 01 Aug 2024 09:43 UTC
Edit: 23 Aug 2024 10:03 UTC
Views: 419