VRChat OSC Voice Changer: Enrutamiento de Micrófono y Parámetros de Avatar
Un setup de voice changer OSC para VRChat lleva la presencia del avatar de “suena diferente” a “responde como un personaje real”. La mayoría de guías se detienen en el enrutamiento de audio: elige un voice changer, selecciona el micrófono virtual en VRChat, listo. Eso cubre el sonido. Pero la capa Open Sound Control de VRChat abre un segundo canal donde la actividad del micrófono anima directamente las expresiones del avatar, dispara secuencias de emotes e impulsa blendshapes de parámetros que ningún rastreador facial alcanza. Esta guía cubre el panorama completo: la cadena de audio, el canal de datos OSC, el mapeo de parámetros de avatar para el Stream Avatar System, la automatización de emotes por voz y la configuración práctica del script que lo conecta todo.
Resumen rápido
- VRChat usa dos canales separados para la voz: entrada de audio WASAPI (el sonido del micrófono) y mensajes OSC UDP (datos de parámetros para animación de avatar)
- Un voice changer gestiona el canal de audio; un script puente OSC gestiona el canal de datos — se ejecutan en paralelo sin conflictos
- La especificación del Stream Avatar System usa parámetros float
VoiceVolume,VoiceActivityyVoicePitchpara impulsar blendshapes de boca y expresión sin rastreo facial - Puedes disparar emotes con parámetros Bool enviados por OSC en eventos de voz o pulsaciones de teclas en el sistema de macros del voice changer
- El puerto OSC predeterminado de VRChat es 9000 UDP; no se necesita configuración especial salvo que el puerto 9000 ya esté ocupado
- VoxBooster funciona como capa de audio en esta cadena sin configuración adicional en su extremo
Cómo VRChat Gestiona Dos Canales Separados para la Voz
Para entender por qué funciona la integración OSC, es necesario ver los dos canales que VRChat usa para la voz por separado.
Canal 1 — Audio WASAPI. VRChat captura tu voz a través de la Windows Audio Session API. Lee del dispositivo de micrófono seleccionado en Ajustes → Micrófono de VRChat. Este es el canal que entrega el sonido real que escuchan los demás jugadores. Un voice changer como VoxBooster se inserta aquí en la capa de audio del sistema operativo, de modo que la voz procesada llega a VRChat sin ninguna configuración en el juego. VRChat simplemente ve un micrófono, no un voice changer.
Canal 2 — Mensajes OSC UDP. VRChat escucha en el puerto UDP 9000 los paquetes Open Sound Control. Estos transportan datos estructurados: nombres de parámetros de avatar junto con valores Float, Int, Bool o String. VRChat toma esos valores y los escribe en la capa Animator del avatar activo en tiempo real. Este canal no tiene nada que ver con el audio — se trata exclusivamente de impulsar parámetros de animación visual.
Un script puente OSC se sitúa entre estos dos canales y hace una sola tarea: escucha la actividad de audio (o eventos de teclas) de tu voice changer y la traduce en paquetes de parámetros OSC que envía a VRChat. El voice changer y VRChat no necesitan saber nada el uno del otro más allá de sus puntos de conexión individuales.
La Cadena de Audio: Voice Changer a Entrada de Micrófono en VRChat
Antes de tocar OSC, configurar correctamente la cadena de audio es el requisito previo.
Configurar VoxBooster como Fuente de Captura
VoxBooster registra un micrófono virtual en la capa de audio de Windows mediante WASAPI. VRChat lee de este micrófono virtual del mismo modo que lee cualquier micrófono físico. La configuración es:
- Instala VoxBooster y ejecútalo. Confirma que el dispositivo de micrófono virtual aparece en Configuración de Windows → Sonido → Entrada.
- Selecciona tu micrófono físico como fuente de entrada de VoxBooster en la interfaz del programa.
- Elige un preset de voz o configura efectos (tono, formantes, modelo de IA — según el personaje que estés construyendo).
- En VRChat, ve a Ajustes → Micrófono y confirma que está seleccionado el dispositivo correcto.
El comportamiento de selección de micrófono de VRChat cambió en 2023: ahora muestra por defecto los dispositivos de entrada físicos y puede ocultar los virtuales según la presentación del driver. Si el micrófono virtual de VoxBooster no aparece en la lista de VRChat, verifica que el dispositivo esté como “Listo” en Configuración de Sonido de Windows (no “Desactivado” ni “No conectado”).
Ajustes de Voz en VRChat que Importan para Audio Procesado
VRChat aplica su propio postprocesado a la entrada de micrófono que recibe. Para voz procesada (ya ecualizada y con tono modificado), algunos ajustes necesitan atención:
| Ajuste en VRChat | Valor predeterminado | Recomendación con voice changer |
|---|---|---|
| Puerta de ruido del micrófono | Activada | Baja el umbral o desactívala — el audio procesado puede activar la puerta incorrectamente |
| Rango de atenuación de voz | 25 m | Mantén el valor por defecto; depende de la proximidad, no del procesado |
| Voz espacializada | Activada | Mantenla activada; añade presencia VR independientemente del efecto de voz |
| Permitir anulación de audio por avatar | Ajuste de usuario | Solo relevante con avatares que anulan ajustes del micrófono |
La puerta de ruido es el punto de fallo más habitual. VRChat usa un umbral de volumen por debajo del cual corta el micrófono — previene el ruido ambiental pero también puede cortar la salida de un voice changer que ha sido sobrecomprimido. Si tu voz se corta intermitentemente en VRChat, baja el umbral de la puerta en Ajustes de Micrófono de VRChat o reduce la compresión en VoxBooster.
Qué es VRChat OSC y Qué Puede Hacer Realmente
VRChat Open Sound Control (OSC) es un protocolo de mensajería en tiempo real que VRChat introdujo como función de primera parte en 2022. Funciona por UDP en la máquina local (no requiere conexión a internet ni servidor de VRChat) y permite a aplicaciones externas leer y escribir parámetros de avatar de VRChat en tiempo real.
OSC en VRChat puede hacer lo siguiente:
- Escribir valores Float, Int, Bool o String en cualquier parámetro de avatar que tenga habilitado “Allow OSC write” en el descriptor del avatar
- Leer valores de parámetros del avatar de vuelta desde VRChat (VRChat envía por el puerto 9001)
- Enviar mensajes de chatbox programáticamente
- Disparar Acciones de VRChat (activar/desactivar características del avatar conectadas a parámetros de Acción)
- Simular controles de entrada (ejes de movimiento, pulsaciones de botones) desde hardware o software externo
Para la integración con voice changer, las capacidades relevantes son escribir parámetros Float y Bool en los parámetros de avatar en tiempo real. Este es el mecanismo que habilita la animación de boca impulsada por nivel del micrófono, expresiones de actividad de voz y emotes disparados por tecla de acceso rápido.
Stream Avatar System: La Especificación que Hace Útil la Voz OSC
El Stream Avatar System es un estándar comunitario para avatares de VRChat que define un conjunto consistente de parámetros escribibles por OSC para streamers y VTubers que quieren animación de avatar reactiva sin hardware de rastreo facial. Si tu avatar fue construido según la especificación del Stream Avatar System, viene con una capa de Animator lista para recibir estos parámetros:
| Nombre del parámetro | Tipo | Descripción |
|---|---|---|
VoiceVolume | Float | Amplitud actual del micrófono, normalizada 0.0–1.0 |
VoiceActivity | Bool | True mientras la voz supera el umbral de ruido |
VoicePitch | Float | Frecuencia fundamental aproximada, normalizada a rango 0.0–1.0 |
VoiceEmotion | Int | Mapeado a estados de expresión (0=neutro, 1=alegre, 2=triste, 3=enfadado, 4=sorprendido) |
IsStreaming | Bool | Indicador opcional para activar overlays de modo streaming en el avatar |
Cuando un script puente OSC envía estos valores en tiempo real, la boca del avatar se abre en proporción al volumen de voz (reemplazando el sistema de visemas grueso de VRChat), las expresiones cambian según el contorno de tono y el avatar entra en reposo-neutro cuando dejas de hablar. En un rig del Stream Avatar System, esto produce la calidad de boca y expresión que la mayoría de la gente asocia con rastreadores faciales caros — no es rastreo facial completo, pero para presencia de voz es lo suficientemente cercano que los observadores casuales a menudo no notan la diferencia.
Emotes Disparados por Voz: Conectando Parámetros Bool de OSC
Una de las aplicaciones más entretenidas es disparar emotes del avatar automáticamente desde la actividad de voz, de modo que el avatar salude, aplauda o reaccione físicamente a momentos específicos de tu habla.
Cómo Funcionan los Emotes Disparados por Bool en VRChat
Los avatares de VRChat pueden tener parámetros Bool en sus capas de Animator que, cuando se ponen en True, entran en un estado específico (reproduciendo un clip de emote) y regresan a False al finalizar el clip. Para disparar un emote por OSC, envías un mensaje a VRChat/avatar/parameters/NombreDelParametro con un valor Bool True. VRChat lo escribe en el Animator, se activa la transición y el emote se reproduce.
El formato del mensaje OSC es: /avatar/parameters/EmoteWave True (usando el formato de dirección OSC de VRChat).
Dos Formas de Disparar desde un Voice Changer
Método 1 — Disparadores por umbral de volumen. Un script puente monitoriza la salida de audio del micrófono virtual de VoxBooster, detecta cuándo la amplitud supera un umbral durante más de N milisegundos y activa el Bool OSC. Útil para transiciones “empieza a hablar” y “para de hablar” — envía VoiceActivity True al inicio de la voz y VoiceActivity False al finalizar.
Método 2 — Disparadores por tecla de acceso rápido. VoxBooster admite teclas de acceso rápido programables para cambiar presets, disparar clips del soundboard y ejecutar macros. Un script puente escucha una tecla global y activa un parámetro de emote OSC cuando se pulsa esa tecla. Esto da control intencional: pulsa F5 mientras hablas para saludar, pulsa F6 para hacer una animación de risa.
La implementación de script más sencilla para ambos métodos usa Python con la librería python-osc:
from pythonosc import udp_client
import sounddevice as sd
import numpy as np
VRC_IP = "127.0.0.1"
VRC_PORT = 9000
THRESHOLD = 0.02 # ajusta al nivel de ruido de tu micrófono
client = udp_client.SimpleUDPClient(VRC_IP, VRC_PORT)
last_state = False
def audio_callback(indata, frames, time, status):
global last_state
volume = float(np.abs(indata).mean())
active = volume > THRESHOLD
if active != last_state:
client.send_message("/avatar/parameters/VoiceActivity", active)
client.send_message("/avatar/parameters/VoiceVolume", min(volume * 10, 1.0))
last_state = active
with sd.InputStream(device="VoxBooster Virtual Mic", # coincide con el nombre del dispositivo en Windows
channels=1, callback=audio_callback, samplerate=48000):
print("Puente OSC activo. Pulsa Ctrl+C para detener.")
while True:
sd.sleep(10)
Reemplaza "VoxBooster Virtual Mic" con el nombre exacto del dispositivo Windows que aparece para la salida de VoxBooster. Ejecuta python -c "import sounddevice as sd; print(sd.query_devices())" para listar los dispositivos disponibles.
Los paquetes python-osc y sounddevice se instalan con pip: pip install python-osc sounddevice numpy.
Proxy Compatible con OSC: Voice Changer y OSC en Paralelo
La configuración de producción más limpia ejecuta VoxBooster y el puente OSC como dos procesos independientes que comparten únicamente el dispositivo de micrófono virtual como intermediario.
Micrófono físico
│
▼
VoxBooster (procesado de audio: tono, formantes, modelo de IA)
│
├── [WASAPI out] → Entrada de micrófono VRChat → Motor de audio VRChat
│
└── [Monitor mic virtual] → Script puente OSC → Puerto UDP 9000 → Motor OSC VRChat
│
▼
Parámetros del avatar
(VoiceVolume, VoiceActivity, etc.)
El monitor del micrófono virtual lee el audio ya procesado. Esto significa que los datos OSC reflejan la salida del voice changer, no el micrófono crudo — así que VoiceVolume está basado en el nivel de voz transformado, que coincide exactamente con lo que escuchan los demás jugadores. Este es el comportamiento correcto: el movimiento de boca del avatar debe seguir la voz audible, no el micrófono original.
Latencia de la Cadena de Micrófono: Lo que OSC Añade y lo que No
Latencia del canal de audio viene determinada por el modo de procesado de VoxBooster. Los efectos DSP (tono, formantes, EQ) funcionan por debajo de 10 ms. La inferencia del modelo de voz de IA en modo Baja Latencia ronda los 80 ms en una GPU de gama media. Esta es la demora entre hablar y que los demás te escuchen — no tiene relación con OSC.
Latencia de parámetros OSC es la demora entre la actividad de voz y la respuesta de la animación del avatar. El callback de audio del script puente se activa cada ~10 ms. Añadiendo la transmisión UDP en localhost (submilisegundo) y el ciclo de actualización del Animator de VRChat (~30 ms a 30 fps), la latencia OSC de extremo a extremo es de 30–50 ms.
El resultado neto: la boca del avatar responde visualmente en un fotograma de animación desde el audio — indistinguible de simultaneidad para los observadores. El audio en sí puede retrasarse 80 ms (modo IA), pero esa misma demora la perciben los observadores tanto en el sonido como en la animación, de modo que permanecen sincronizados.
Comparativa: Enfoques de Voice Changer para VRChat OSC
| Enfoque | Calidad de audio | Integración OSC | Latencia | Complejidad de configuración |
|---|---|---|---|---|
| VoxBooster + script puente OSC | Alta (modelo IA disponible) | Sí, vía script | 80ms IA / <10ms DSP | Media — requiere script Python |
| Voicemod + script puente OSC | Media (solo DSP) | Sí, vía script | <10ms | Media — mismo enfoque |
| MorphVOX + script puente | Media-baja | Sí, vía script | <15ms | Media |
| Solo sistema de visemas nativo de VRChat | N/A (voz sin modificar) | Nativo, sin script | <5ms | Cero |
| Rastreador facial (p. ej. VRCFaceTracking) | N/A (audio por separado) | Nativo, sin script | 15–30ms | Alta — requiere hardware |
El enfoque de script puente OSC funciona con cualquier voice changer que exponga una salida de micrófono virtual. La diferencia entre herramientas es la calidad de audio y si está disponible la inferencia del modelo de voz de IA — que es donde el canal de modelo local de VoxBooster se diferencia de herramientas solo DSP como Voicemod y MorphVOX.
Problemas Habituales y Soluciones
VRChat No Recibe Mensajes OSC
Comprueba en este orden:
- Confirma que OSC está habilitado en el Menú de Acción de VRChat → Opciones → OSC → Habilitado
- Confirma que el puerto de escucha es 9000 (Menú de Acción → Opciones → OSC → Puerto)
- Confirma que no hay regla de firewall bloqueando el tráfico UDP en localhost — el Firewall de Windows a veces bloquea las aplicaciones Python en la primera ejecución
- Confirma que el puerto de destino del script puente coincide con el puerto de escucha de VRChat
- Reinicia VRChat después de habilitar OSC — algunas versiones requieren reinicio para inicializar OSC
Los Parámetros del Avatar No Responden
Las escrituras OSC en parámetros solo funcionan si:
- El avatar tiene esos parámetros definidos en su Descriptor de Avatar VRChat
- Los parámetros están configurados para “Allow OSC” en la lista de parámetros del descriptor
- La capa Animator tiene transiciones conectadas a esos parámetros
Si descargaste un avatar de la comunidad y los parámetros no responden, puede que el avatar sea anterior al soporte OSC de VRChat o que no tenga la capa del Stream Avatar System.
El Audio del Voice Changer se Corta en VRChat
Como se indicó en la sección de cadena de audio, la puerta de ruido de VRChat puede cortar la salida de un voice changer fuertemente comprimido o normalizado. Soluciones:
- Reduce el umbral de la puerta del micrófono en VRChat
- En VoxBooster, reduce el ratio de compresión de salida (menos compresión = más rango dinámico = señal de puerta más clara)
- Asegúrate de que el nivel de salida de VoxBooster está calibrado para que el habla normal alcance picos de -12 a -6 dBFS
VRChat OSC Voice en el Contexto de Otras Plataformas de VR Social
VRChat fue la primera gran plataforma de VR social en implementar OSC como función de primera parte, pero el concepto se está extendiendo. Si construyes experiencia con la configuración de voz OSC de VRChat, los mismos principios aplican en otros lugares:
- Resonite usa un sistema de scripting basado en grafos de nodos donde la entrada de audio puede impulsar parámetros de avatar con una expresividad similar — consulta nuestra guía de voz con grafos de nodos en Resonite para ver cómo se traslada el flujo de trabajo
- ChilloutVR admite entrada de parámetros OSC para avatares compatibles y usa una arquitectura de enrutamiento similar a la de VRChat — nuestra guía de enrutamiento de voz en ChilloutVR cubre los detalles específicos de esa plataforma
- Las configuraciones generales de streaming se benefician de la misma cadena de micrófono virtual — consulta voice changer para streaming en directo si también usas OBS junto a VRChat
Conclusión
La combinación de un setup de voice changer OSC para VRChat con el Stream Avatar System es el techo práctico de lo que parece actualmente la integración de voz en VR social — sin llegar al hardware de rastreo facial completo. El canal de audio entrega la voz del personaje; el canal OSC hace que el avatar anime en respuesta. Juntos producen una presencia de avatar que el enrutamiento de audio pasivo por sí solo no puede lograr.
La configuración es más elaborada que una instalación básica de voice changer, pero los componentes son pequeños: un voice changer gestionando el audio (VoxBooster), un script Python de 40 líneas gestionando OSC y un avatar listo para OSC. El script puente funciona silenciosamente en segundo plano con recursos del sistema despreciables una vez que está en ejecución.
Si quieres ampliar esto a una configuración completa de VTuber o streaming, VoxBooster cubre el lado del procesado de audio — modelos de voz de IA, presets DSP, macros de soundboard y supresión de ruido — en un micrófono virtual Windows estándar con prueba gratuita de 3 días.
Descarga VoxBooster — prueba gratuita de 3 días, sin tarjeta de crédito.