VRChat OSC Voice Changer: Roteamento de Microfone e Parâmetros de Avatar
Um setup de voice changer OSC para VRChat eleva a presença do avatar de “soa diferente” para “responde como um personagem real”. A maioria dos guias para em roteamento de áudio — escolhe um voice changer, seleciona o microfone virtual no VRChat, pronto. Isso cobre o som. Mas a camada Open Sound Control do VRChat abre um segundo canal onde a atividade do microfone anima diretamente expressões do avatar, dispara sequências de emotes e aciona blendshapes de parâmetros que nenhum rastreador facial alcança. Este guia cobre o quadro completo: a cadeia de áudio, o canal de dados OSC, o mapeamento de parâmetros de avatar para o Stream Avatar System, a automação de emotes por voz e a configuração prática do script que amarra tudo.
Resumo rápido
- O VRChat usa dois canais separados para voz: entrada de áudio WASAPI (o som do microfone) e mensagens OSC UDP (dados de parâmetros para animação do avatar)
- Um voice changer gerencia o canal de áudio; um script de ponte OSC gerencia o canal de dados — rodam em paralelo sem conflito
- A especificação do Stream Avatar System usa parâmetros float
VoiceVolume,VoiceActivityeVoicePitchpara acionar blendshapes de boca e expressão sem rastreamento facial - Você pode disparar emotes com parâmetros Bool enviados por OSC em eventos de voz ou pressionamentos de teclas no sistema de macros do voice changer
- A porta OSC padrão do VRChat é 9000 UDP; não é necessária configuração especial salvo se a porta 9000 já estiver em uso
- O VoxBooster funciona como camada de áudio nessa cadeia sem configuração adicional do seu lado
Como o VRChat Gerencia Dois Canais Separados para Voz
Para entender por que a integração OSC funciona do jeito que funciona, é preciso ver os dois canais que o VRChat usa para voz separadamente.
Canal 1 — Áudio WASAPI. O VRChat captura sua voz pela Windows Audio Session API. Lê do dispositivo de microfone selecionado em Configurações → Microfone do VRChat. Este é o canal que entrega o som real que outros jogadores ouvem. Um voice changer como o VoxBooster se insere aqui na camada de áudio do sistema operacional, de modo que a voz processada chega ao VRChat sem nenhuma configuração no jogo. O VRChat simplesmente enxerga um microfone, não um voice changer.
Canal 2 — Mensagens OSC UDP. O VRChat escuta na porta UDP 9000 por pacotes Open Sound Control. Estes carregam dados estruturados: nomes de parâmetros de avatar pareados com valores Float, Int, Bool ou String. O VRChat pega esses valores e os escreve na camada Animator do avatar ativo em tempo real. Esse canal não tem nada a ver com áudio — é puramente sobre acionar parâmetros de animação visual.
Um script de ponte OSC senta entre esses dois canais e faz um único trabalho: escuta a atividade de áudio (ou eventos de teclas) do seu voice changer e traduz isso em pacotes de parâmetros OSC enviados ao VRChat. O voice changer e o VRChat nunca precisam saber nada um do outro além dos seus pontos de conexão individuais.
A Cadeia de Áudio: Voice Changer para Entrada de Microfone no VRChat
Antes de tocar em OSC, configurar corretamente a cadeia de áudio é o pré-requisito.
Configurando o VoxBooster como Fonte de Captura
O VoxBooster registra um microfone virtual na camada de áudio do Windows via WASAPI. O VRChat lê desse microfone virtual da mesma forma que lê qualquer microfone físico. A configuração é:
- Instale o VoxBooster e execute-o. Confirme que o dispositivo de microfone virtual aparece em Configurações do Windows → Som → Entrada.
- Selecione seu microfone físico como fonte de entrada do VoxBooster na interface do programa.
- Escolha um preset de voz ou configure efeitos (tom, formantes, modelo de IA — dependendo do personagem que você está construindo).
- No VRChat, vá em Configurações → Microfone e confirme que o dispositivo correto está selecionado.
O comportamento de seleção de microfone do VRChat mudou em 2023: agora mostra por padrão dispositivos de entrada físicos e pode ocultar os virtuais dependendo da apresentação do driver. Se o microfone virtual do VoxBooster não aparecer na lista do VRChat, verifique que o dispositivo está listado como “Pronto” nas Configurações de Som do Windows (não “Desativado” ou “Não conectado”).
Configurações de Voz no VRChat que Importam para Áudio Processado
O VRChat aplica pós-processamento à entrada de microfone que recebe. Para voz processada (já equalizada e com tom alterado), algumas configurações precisam de atenção:
| Configuração no VRChat | Padrão | Recomendação com voice changer |
|---|---|---|
| Gate de volume do microfone | Ativado | Abaixe o limiar ou desative — áudio processado pode acionar o gate incorretamente |
| Alcance de atenuação de voz | 25 m | Mantenha o padrão; depende de proximidade, não de processamento |
| Voz espacializada | Ativada | Mantenha ativada; adiciona presença VR independentemente do efeito de voz |
| Permitir override de áudio por avatar | Configuração do usuário | Relevante apenas com avatares que substituem configurações de microfone |
O gate de volume é o ponto de falha mais comum. O VRChat usa um limiar de volume abaixo do qual corta seu microfone — isso previne ruído ambiente mas também pode cortar a saída de um voice changer que foi supercomprimido. Se sua voz fica cortando no VRChat, abaixe o limiar do gate nas Configurações de Microfone do VRChat ou reduza a compressão no VoxBooster.
O que é VRChat OSC e o que Ele Pode Fazer de Fato
VRChat Open Sound Control (OSC) é um protocolo de mensagens em tempo real que o VRChat introduziu como recurso de primeira parte em 2022. Funciona por UDP na máquina local (sem necessidade de conexão à internet ou servidor do VRChat) e permite que aplicações externas leiam e escrevam parâmetros de avatar do VRChat em tempo real.
OSC no VRChat pode fazer o seguinte:
- Escrever valores Float, Int, Bool ou String em qualquer parâmetro de avatar que tenha “Allow OSC write” habilitado no descriptor do avatar
- Ler valores de parâmetros do avatar de volta do VRChat (o VRChat envia pela porta 9001)
- Enviar mensagens de chatbox programaticamente
- Disparar Ações do VRChat (ligar/desligar recursos do avatar conectados a parâmetros de Ação)
- Simular controles de entrada (eixos de movimento, pressionamentos de botões) de hardware ou software externo
Para integração com voice changer, as capacidades relevantes são escrever parâmetros Float e Bool nos parâmetros de avatar em tempo real. Esse é o mecanismo que habilita animação de boca acionada pelo nível do microfone, expressões de atividade de voz e emotes disparados por tecla de atalho.
Stream Avatar System: A Especificação que Torna a Voz OSC Útil
O Stream Avatar System é um padrão comunitário para avatares do VRChat que define um conjunto consistente de parâmetros graváveis por OSC para streamers e VTubers que querem animação de avatar reativa sem hardware de rastreamento facial. Se seu avatar foi construído na especificação do Stream Avatar System, ele vem com uma camada de Animator pronta para receber estes parâmetros:
| Nome do parâmetro | Tipo | Descrição |
|---|---|---|
VoiceVolume | Float | Amplitude atual do microfone, normalizada 0.0–1.0 |
VoiceActivity | Bool | True enquanto a voz está acima do limiar de ruído |
VoicePitch | Float | Frequência fundamental aproximada, normalizada para o intervalo 0.0–1.0 |
VoiceEmotion | Int | Mapeado para estados de expressão (0=neutro, 1=feliz, 2=triste, 3=bravo, 4=surpreso) |
IsStreaming | Bool | Flag opcional para ativar overlays de modo streaming no avatar |
Quando um script de ponte OSC envia esses valores em tempo real, a boca do avatar abre em proporção ao volume da voz (substituindo o sistema grosseiro de visemas do VRChat), expressões mudam com base no contorno de tom e o avatar vai para repouso-neutro quando você para de falar. Em um rig do Stream Avatar System, isso produz a qualidade de boca e expressão que a maioria das pessoas associa a rastreadores faciais caros — não é rastreamento facial completo, mas para presença de voz é próximo o suficiente que observadores casuais frequentemente não percebem a diferença.
Emotes Disparados por Voz: Conectando Parâmetros Bool de OSC
Uma das aplicações mais divertidas é disparar emotes do avatar automaticamente a partir da atividade de voz — fazendo o avatar acenar, aplaudir ou reagir fisicamente a momentos específicos do seu discurso.
Como Emotes Disparados por Bool Funcionam no VRChat
Avatares do VRChat podem ter parâmetros Bool nas suas camadas de Animator que, quando definidos como True, entram em um estado específico (reproduzindo um clipe de emote) e retornam a False quando o clipe termina. Para disparar um emote via OSC, você envia uma mensagem para VRChat/avatar/parameters/NomeDoParametro com um valor Bool True. O VRChat escreve isso no Animator, a transição dispara e o emote é reproduzido.
O formato da mensagem OSC é: /avatar/parameters/EmoteWave True (usando o formato de endereço OSC do VRChat).
Duas Formas de Disparar a Partir de um Voice Changer
Método 1 — Gatilhos por limiar de volume. Um script de ponte monitora a saída de áudio do microfone virtual do VoxBooster, detecta quando a amplitude excede um limiar por mais de N milissegundos e aciona o Bool OSC. Útil para transições “começou a falar” e “parou de falar” — envia VoiceActivity True ao início da voz e VoiceActivity False ao final.
Método 2 — Gatilhos por tecla de atalho. O VoxBooster suporta teclas de atalho programáveis para trocar presets, disparar clipes do soundboard e executar macros. Um script de ponte escuta uma tecla global e aciona um parâmetro de emote OSC quando essa tecla é pressionada. Isso dá controle intencional: pressione F5 enquanto fala para acenar, pressione F6 para fazer uma animação de riso.
A implementação de script mais simples para ambos os métodos usa Python com a biblioteca 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 # ajuste ao nível de ruído do seu microfone
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", # corresponde ao nome do dispositivo no Windows
channels=1, callback=audio_callback, samplerate=48000):
print("Ponte OSC ativa. Pressione Ctrl+C para parar.")
while True:
sd.sleep(10)
Substitua "VoxBooster Virtual Mic" pelo nome exato do dispositivo Windows que aparece para a saída do VoxBooster. Execute python -c "import sounddevice as sd; print(sd.query_devices())" para listar os dispositivos disponíveis.
Os pacotes python-osc e sounddevice se instalam via pip: pip install python-osc sounddevice numpy.
Proxy Compatível com OSC: Voice Changer e OSC em Paralelo
A configuração de produção mais limpa executa o VoxBooster e a ponte OSC como dois processos independentes que compartilham apenas o dispositivo de microfone virtual como intermediário.
Microfone físico
│
▼
VoxBooster (processamento de áudio: tom, formantes, modelo de IA)
│
├── [WASAPI out] → Entrada de microfone VRChat → Motor de áudio VRChat
│
└── [Monitor mic virtual] → Script de ponte OSC → Porta UDP 9000 → Motor OSC VRChat
│
▼
Parâmetros do avatar
(VoiceVolume, VoiceActivity, etc.)
O monitor do microfone virtual lê o áudio já processado. Isso significa que os dados OSC refletem a saída do voice changer, não o microfone bruto — então VoiceVolume é baseado no nível da voz transformada, que corresponde exatamente ao que os outros jogadores estão ouvindo. Esse é o comportamento correto: o movimento da boca do avatar deve seguir a voz audível, não o microfone original.
Latência da Cadeia de Microfone: O que OSC Adiciona e o que Não Adiciona
Latência do canal de áudio é determinada pelo modo de processamento do VoxBooster. Efeitos DSP (tom, formantes, EQ) rodam abaixo de 10 ms. A inferência do modelo de voz de IA no modo Baixa Latência roda em aproximadamente 80 ms em uma GPU de médio desempenho. Esse é o atraso entre falar e os outros te ouvirem — não tem relação com OSC.
Latência de parâmetros OSC é o atraso entre atividade de voz e a animação do avatar respondendo. O callback de áudio do script de ponte dispara a cada ~10 ms. Somando a transmissão UDP em localhost (submilissegundo) e o ciclo de atualização do Animator do VRChat (~30 ms a 30 fps), a latência OSC ponta a ponta é de 30–50 ms.
O resultado líquido: a boca do avatar responde visualmente dentro de um quadro de animação do áudio — indistinguível de simultâneo para observadores. O áudio em si pode estar atrasado 80 ms (modo IA), mas esse mesmo atraso os observadores percebem tanto no som quanto na animação, então permanecem sincronizados.
Comparativo: Abordagens de Voice Changer para VRChat OSC
| Abordagem | Qualidade de áudio | Integração OSC | Latência | Complexidade de configuração |
|---|---|---|---|---|
| VoxBooster + script de ponte OSC | Alta (modelo de IA disponível) | Sim, via script | 80ms IA / <10ms DSP | Média — requer script Python |
| Voicemod + script de ponte OSC | Média (somente DSP) | Sim, via script | <10ms | Média — mesma abordagem |
| MorphVOX + script de ponte | Média-baixa | Sim, via script | <15ms | Média |
| Apenas sistema de visemas nativo do VRChat | N/A (voz sem modificação) | Nativo, sem script | <5ms | Zero |
| Rastreador facial (ex.: VRCFaceTracking) | N/A (áudio separado) | Nativo, sem script | 15–30ms | Alta — requer hardware |
A abordagem do script de ponte OSC funciona com qualquer voice changer que exponha uma saída de microfone virtual. A diferença entre ferramentas é qualidade de áudio e disponibilidade de inferência de modelo de voz de IA — que é onde o pipeline de modelo local do VoxBooster se diferencia de ferramentas somente DSP como Voicemod e MorphVOX.
Problemas Comuns e Soluções
VRChat Não Recebe Mensagens OSC
Verifique nesta ordem:
- Confirme que OSC está habilitado no Menu de Ação do VRChat → Opções → OSC → Habilitado
- Confirme que a porta de escuta é 9000 (Menu de Ação → Opções → OSC → Porta)
- Confirme que nenhuma regra de firewall está bloqueando tráfego UDP no localhost — o Firewall do Windows às vezes bloqueia aplicações Python na primeira execução
- Confirme que a porta de destino do script de ponte corresponde à porta de escuta do VRChat
- Reinicie o VRChat após habilitar OSC — algumas versões exigem reinicialização para OSC inicializar
Parâmetros do Avatar Não Respondem
Escritas OSC em parâmetros só funcionam se:
- O avatar tem esses parâmetros definidos no seu Descriptor de Avatar VRChat
- Os parâmetros estão configurados para “Allow OSC” na lista de parâmetros do descriptor
- A camada Animator tem transições conectadas a esses parâmetros
Se você baixou um avatar da comunidade e os parâmetros não respondem, o avatar pode ser anterior ao suporte OSC do VRChat ou pode não ter a camada do Stream Avatar System.
Áudio do Voice Changer Sendo Cortado no VRChat
Como observado na seção de cadeia de áudio, o gate de ruído do VRChat pode cortar a saída de um voice changer fortemente comprimido ou normalizado. Soluções:
- Reduza o limiar do gate de microfone do VRChat
- No VoxBooster, reduza o ratio de compressão da saída (menos compressão = mais faixa dinâmica = sinal de gate mais claro)
- Certifique-se de que o nível de saída do VoxBooster está calibrado para que a fala normal atinja picos de -12 a -6 dBFS
VRChat OSC Voice no Contexto de Outras Plataformas de VR Social
O VRChat foi a primeira grande plataforma de VR social a implementar OSC como recurso de primeira parte, mas o conceito está se expandindo. Se você acumular experiência com configuração de voz OSC do VRChat, os mesmos princípios se aplicam em outros lugares:
- Resonite usa um sistema de scripting baseado em grafos de nós onde a entrada de áudio pode acionar parâmetros de avatar com expressividade similar — veja nosso guia de voz com grafos de nós no Resonite para ver como o fluxo de trabalho se traduz
- ChilloutVR suporta entrada de parâmetros OSC para avatares compatíveis e usa uma arquitetura de roteamento similar à do VRChat — nosso guia de roteamento de voz no ChilloutVR cobre os detalhes específicos dessa plataforma
- Configurações gerais de streaming se beneficiam da mesma cadeia de microfone virtual — veja voice changer para streaming ao vivo se você também usa OBS junto ao VRChat
Conclusão
A combinação de um setup de voice changer OSC para VRChat com o Stream Avatar System é o teto prático do que parece a integração de voz em VR social atualmente — sem chegar ao hardware de rastreamento facial completo. O canal de áudio entrega a voz do personagem; o canal OSC faz o avatar animar em resposta. Juntos produzem uma presença de avatar que o roteamento passivo de áudio sozinho não consegue atingir.
A configuração é mais elaborada do que uma instalação básica de voice changer, mas os componentes são pequenos: um voice changer gerenciando o áudio (VoxBooster), um script Python de 40 linhas gerenciando OSC e um avatar pronto para OSC. O script de ponte roda silenciosamente em segundo plano e usa recursos de sistema insignificantes após iniciado.
Se você quer expandir isso para uma configuração completa de VTuber ou streaming, o VoxBooster cobre o lado do processamento de áudio — modelos de voz de IA, presets DSP, macros de soundboard e supressão de ruído — em um microfone virtual Windows padrão com teste gratuito de 3 dias.
Baixe o VoxBooster — teste gratuito de 3 dias, sem cartão de crédito.