Whisper e Gemma 3 são conectados com aprendizado contrastivo para entrada de voz barata em LLMs
Adicionar voz a um LLM com pouco custo se mostrou mais difícil do que os papers prometem. O autor conectou Whisper Medium e Gemma 3 4B por meio de um projetor MLP e testou teacher forcing, LoRA, quantização e várias regularizações, mas o progresso real só veio com o InfoNCE contrastivo. A primeira execução bem-sucedida chegou a um WER de 35%. Está longe de um ASR de produção, mas o modelo já reconhece fala e erra de modo foneticamente coerente.
Processado por IA de Habr AI; editado por Hamidun News
Adicionar entrada de voz a um LLM de forma econômica se mostrou menos simples do que sugerem muitos trabalhos sobre multimodalidade. O autor do experimento tentou conectar o codificador de áudio Whisper e o modelo de linguagem Gemma 3 por meio de um projetor compacto e, depois de uma série de fracassos, chegou a uma configuração funcional com aprendizado contrastivo.
Como a arquitetura foi montada
A ideia era simples: em vez de treinar do zero um sistema multimodal caro, pegar um codificador de áudio e um LLM prontos e uni-los com um "tradutor" entre os espaços de embeddings. Como codificador, escolheram o Whisper Medium, porque suas representações internas são mais adequadas ao reconhecimento de fala do que as de alternativas autossupervisionadas. Do lado do texto, usaram o Gemma 3 4B, e a ponte foi um projetor MLP de duas camadas que comprimia os vetores de áudio e os traduzia para o espaço de embeddings do LLM.
Para não treinar o modelo apenas com inglês limpo de estúdio, o fluxo de treinamento foi montado a partir de vários conjuntos de dados e misturado dinamicamente. Assim, o sistema recebeu desde o início fala de qualidade, idioma e modo de pronúncia variados. O artigo destaca que essa mistura não serve para gerar estatísticas bonitas, mas para que, desde as primeiras épocas, o sistema não se acostume a um único ambiente acústico e a um único idioma. Caso contrário, qualquer desvio, como ruído, uma pausa ou um trecho em russo, quebraria o reconhecimento.
- LibriSpeech train.360 como base do corpus
- LibriSpeech train.100 como inglês limpo adicional
- Russian LibriSpeech para fala em russo
- DisfluencySpeech com pausas, lapsos e gagueiras
Por que tudo quebrava
A primeira aposta foi a receita mais óbvia: teacher forcing e entropia cruzada comum sobre a transcrição. O LLM recebia uma instrução, os vetores de áudio e o texto correto, e a perda era calculada apenas sobre os tokens da resposta. Na prática, o sistema quase não ouvia a gravação: o modelo gerava fragmentos desconexos, e o WER chegava a travar perto de 300%. Mesmo após adicionar LoRA, ficou claro que o problema era mais profundo: o projetor não levava o sinal de áudio até onde o modelo de linguagem sabe lê-lo. O Gemma mantinha um prior forte demais sobre a geometria habitual dos tokens de texto.
Depois veio uma série de correções pontuais. O autor adicionou um estágio zero em que o Gemma primeiro apenas aprendia a reescrever texto conforme uma instrução, porque a versão usada não era a instruction-tuned. Em seguida vieram experimentos com quantização e regularizações: a commitment loss devia manter as saídas do projetor perto de embeddings conhecidos, o SWD aproximar as distribuições dos vetores de áudio e de texto, a entropy loss forçar o sistema a usar mais códigos, e o VICReg impedir o colapso de coordenadas individuais.
Visualizações t-SNE ajudaram a enxergar as duas doenças principais: o colapso das representações e a lacuna geométrica entre os espaços de áudio e de texto. Mas cada novo ajuste tratava só um sintoma. O SWD melhorava a forma da distribuição sem melhorar o conteúdo. A entropy loss ampliava o uso de códigos, mas de forma aleatória. O VICReg aumentava a variância, porém os vetores se dispersavam caoticamente. Repetidamente, o sistema achava um atalho em que as métricas pareciam melhores localmente, sem que surgisse reconhecimento real. Essa foi a principal lição da etapa de regularizações: com um sinal principal fraco, o modelo otimiza a matemática, não o significado.
O que funcionou no fim
O ponto de virada foi abandonar a ideia de que o alinhamento pode ser obtido apenas com penalidades indiretas. O autor fez do aprendizado contrastivo o sinal principal e passou ao InfoNCE simétrico: o vetor de áudio deve ficar mais perto da sua transcrição do que de todos os outros textos do lote, e vice-versa. Ao contrário dos regularizadores anteriores, essa perda define não estatísticas gerais, mas relações concretas entre pares.
Com um lote grande, funcionou claramente melhor: a curva de perda passou a cair de forma uniforme e sem saltos bruscos, e o WER caiu para 35%. O resultado ainda não alcança o nível dos sistemas ASR comerciais, mas já não é ruído aleatório. Nos logs, o modelo passou a errar de modo foneticamente plausível: captava o som das palavras e se confundia mais como uma pessoa com audição ruim do que como um gerador de texto quebrado. Para uma primeira rodada, isso importa mais que o valor absoluto do WER: o sistema deixou de imitar uma resposta e passou a usar de fato o som. O autor vê isso como o principal sinal de progresso.
"Mas o principal é que ela já ouve."
O que isso significa
Este caso mostra que uma modalidade de áudio barata para LLMs locais é possível, mas não por meio do projetor MLP "mágico" dos papers. A combinação simples de um codificador pronto com um LLM só começa a funcionar quando surge entre eles um sinal de alinhamento forte. Para desenvolvedores, essa é uma conclusão importante: se você quer adicionar voz ao seu próprio modelo sem um treinamento caro do zero, a etapa contrastiva pode ser não uma opção, mas uma base obrigatória.
Perguntas frequentes sobre a notícia
Como a arquitetura foi montada?
A ideia era simples: em vez de treinar do zero um sistema multimodal caro, pegar um codificador de áudio e um LLM prontos e uni-los com um "tradutor" entre os espaços de embeddings. Como codificador, escolheram o Whisper Medium, porque suas representações internas são mais adequadas ao reconhecimento de fala do que as de alternativas autossupervisionadas. Do lado do texto, usaram o Gemma 3 4B, e a ponte foi um projetor MLP de duas camadas que comprimia os vetores de áudio e os traduzia para o espaço de embeddings do LLM. Para não treinar o modelo apenas com inglês limpo de
Por que tudo quebrava?
A primeira aposta foi a receita mais óbvia: teacher forcing e entropia cruzada comum sobre a transcrição. O LLM recebia uma instrução, os vetores de áudio e o texto correto, e a perda era calculada apenas sobre os tokens da resposta. Na prática, o sistema quase não ouvia a gravação: o modelo gerava fragmentos desconexos, e o WER chegava a travar perto de 300%. Mesmo após adicionar LoRA, ficou claro que o problema era mais profundo: o projetor não levava o sinal de áudio até onde o modelo de linguagem sabe lê-lo. O Gemma mantinha um prior forte demais sobre a geometria habit
O que funcionou no fim?
O ponto de virada foi abandonar a ideia de que o alinhamento pode ser obtido apenas com penalidades indiretas. O autor fez do aprendizado contrastivo o sinal principal e passou ao InfoNCE simétrico: o vetor de áudio deve ficar mais perto da sua transcrição do que de todos os outros textos do lote, e vice-versa. Ao contrário dos regularizadores anteriores, essa perda define não estatísticas gerais, mas relações concretas entre pares. Com um lote grande, funcionou claramente melhor: a curva de perda passou a cair de forma uniforme e sem saltos bruscos, e o WER caiu para 35%.
Test Frontier LLMs & Autonomous Agents in One Workspace
Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.