VRChat OSC Voice Changer: Roteamento de Microfone e Parâmetros de Avatar

Roteie seu voice changer pelo VRChat OSC para disparar expressões, emotes e animações de avatar sincronizados com seu microfone. Guia completo de configuração.

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, VoiceActivity e VoicePitch para 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 é:

  1. Instale o VoxBooster e execute-o. Confirme que o dispositivo de microfone virtual aparece em Configurações do Windows → Som → Entrada.
  2. Selecione seu microfone físico como fonte de entrada do VoxBooster na interface do programa.
  3. Escolha um preset de voz ou configure efeitos (tom, formantes, modelo de IA — dependendo do personagem que você está construindo).
  4. 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 VRChatPadrãoRecomendação com voice changer
Gate de volume do microfoneAtivadoAbaixe o limiar ou desative — áudio processado pode acionar o gate incorretamente
Alcance de atenuação de voz25 mMantenha o padrão; depende de proximidade, não de processamento
Voz espacializadaAtivadaMantenha ativada; adiciona presença VR independentemente do efeito de voz
Permitir override de áudio por avatarConfiguração do usuárioRelevante 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âmetroTipoDescrição
VoiceVolumeFloatAmplitude atual do microfone, normalizada 0.0–1.0
VoiceActivityBoolTrue enquanto a voz está acima do limiar de ruído
VoicePitchFloatFrequência fundamental aproximada, normalizada para o intervalo 0.0–1.0
VoiceEmotionIntMapeado para estados de expressão (0=neutro, 1=feliz, 2=triste, 3=bravo, 4=surpreso)
IsStreamingBoolFlag 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

AbordagemQualidade de áudioIntegração OSCLatênciaComplexidade de configuração
VoxBooster + script de ponte OSCAlta (modelo de IA disponível)Sim, via script80ms IA / <10ms DSPMédia — requer script Python
Voicemod + script de ponte OSCMédia (somente DSP)Sim, via script<10msMédia — mesma abordagem
MorphVOX + script de ponteMédia-baixaSim, via script<15msMédia
Apenas sistema de visemas nativo do VRChatN/A (voz sem modificação)Nativo, sem script<5msZero
Rastreador facial (ex.: VRCFaceTracking)N/A (áudio separado)Nativo, sem script15–30msAlta — 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:

  1. Confirme que OSC está habilitado no Menu de Ação do VRChat → Opções → OSC → Habilitado
  2. Confirme que a porta de escuta é 9000 (Menu de Ação → Opções → OSC → Porta)
  3. 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
  4. Confirme que a porta de destino do script de ponte corresponde à porta de escuta do VRChat
  5. 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.

Experimente o VoxBooster — 3 dias grátis.

Clone de voz em tempo real, soundboard e efeitos — onde você já fala.

  • Sem cartão
  • ~30ms de latência
  • Discord · Teams · OBS
Experimentar 3 dias grátis