Running voice agents inside Windows Subsystem for Linux (WSL2) is a popular choice for developers, but routing microphone audio from your Windows host to the WSL2 container requires extra setup.
Follow this guide to get Yumi's ears working under WSL2.
🛠️ Step 1: Install PulseAudio / ALSA inside WSL2
WSL2 does not natively include an audio server. You must install alsa-utils and set up PulseAudio or PipeWire.
Inside your WSL2 terminal:
sudo apt-get update
sudo apt-get install -y alsa-utils libasound2-dev portaudio19-dev
🎙️ Step 2: Route Microphone via USBIP-WIN
Because WSL2 runs as a lightweight utility VM, it does not share the host's direct audio interfaces. You can route your physical USB microphone into the WSL2 VM using usbipd-win.
- On your Windows Host, install
usbipd-win(via github.com/dorssel/usbipd-win). - Open an Administrator PowerShell window on Windows and list your USB devices:
usbipd list - Locate your USB microphone (e.g. Bus ID
2-4) and bind it:usbipd bind --busid 2-4 - Attach it directly to your running WSL2 instance:
usbipd attach --wsl --busid 2-4 - Inside WSL2, verify the device is recognized:
lsusb
You will now see your USB microphone listed as a local USB device inside your Linux environment!
⚡ Step 3: Run Yumi in WSL2
Follow the standard Developer Manual guide inside your WSL2 prompt to clone and sync Yumi. When you boot the wake-up server, Uvicorn will listen on port 8000 inside the WSL2 instance and Windows will automatically route port forwarding so you can open http://localhost:8000/ in your Windows host browser!
Proceed to Core Senses to learn how the audio pipeline processes this signal.