Ir para o conteúdo principal

Por que um motor só não basta: mais motores só ajudam se falharem de formas diferentes

· Zeyu Si

Nesta página

Fizemos uma comparação com uma entrevista de negócios de 42 minutos. Uma transcrição saiu direto do ElevenLabs. A outra passou pelo nosso pipeline completo. As duas eram 91% idênticas.

Os 9% restantes eram justamente a parte que mais importa para quem pesquisa.

O perigo está no "quase certo"

Separamos 19 termos-chave da entrevista: nomes de marcas, números de modelo, nomes de lugares, jargão do setor. Na transcrição que saiu direto do motor, 10 estavam errados, 4 parcialmente errados e 5 certos. Um nome de marca apareceu seis vezes e não foi escrito corretamente nenhuma vez. Em cada uma delas virou uma palavra comum, de som parecido e sentido completamente diferente.

Para ser justo com o ElevenLabs, ele foi bem naquele dia. Nada desandou, nada foi omitido, e ele acertou os falantes em cerca de 98% do tempo. Avaliado como um todo, seria difícil achar defeito.

Esse é o problema. Quem lê uma frase fluente não tem motivo para duvidar do substantivo no meio dela. E os outros três motores que tínhamos à mão também erraram esses mesmos termos. Então a questão não é que um motor seja ruim. É que qualquer motor sozinho vai ouvir errado termos do setor que nunca encontrou antes.

Nossa própria "otimização" só embaralhava as cartas

Antes de mandar o áudio para um motor, nós o dividimos em seções e normalizamos o formato. Achávamos que isso melhoraria a precisão.

Corrigiu 22 coisas e estragou 25. Mais ou menos cara ou coroa.

Acabamos descobrindo o porquê. Este motor é muito sensível ao ponto do áudio em que começa a ouvir. O mesmo número de modelo saiu como "X6" quando a seção começava em zero segundo, e como "X-six" por extenso quando começava em 1:30. Nem a transcrição sem processamento era consistente: "X-six" nos primeiros 32 minutos, "X6" depois disso.

Chegar lá exigiu três experimentos controlados, cada um descartando uma explicação óbvia: não era a duração do arquivo, não era o formato do áudio e não era a configuração de idioma. Se tivéssemos parado na primeira resposta plausível, teríamos registrado a causa errada na nossa própria documentação.

O que de fato melhorou a transcrição foram motores conferindo uns aos outros

Três outros motores transcrevem o mesmo áudio, e comparamos todos juntos, com um glossário de termos. Das 25 coisas que nossa divisão tinha estragado, 14 foram recuperadas, ou seja, 56%.

O número de modelo se resolveu da mesma forma. Outro motor escreveu "X6" todas as vezes, então, sempre que o motor principal escorregava, a transcrição final ainda tinha a forma correta à disposição.

Onde os motores não conseguem decidir, não decidimos pelo leitor. Marcamos o ponto como incerto para que alguém possa ouvir aquele segundo. Esta entrevista teve 7 marcações.

Mais motores não é automaticamente melhor

É tentador concluir que mais motores significam resultados melhores. Testamos isso. Não é assim.

Experimentamos oito motores open source de chinês rodando localmente e os deixamos votar. O resultado foi pior do que o melhor motor sozinho. A maioria dos oito vinha da mesma empresa e tinha sido treinada com dados muito sobrepostos, então tendiam a errar nas mesmas palavras. A votação não corrigiu esses erros. Ela os cristalizou.

Trocar para quatro motores construídos sobre quatro abordagens técnicas diferentes mudou isso. Entre quaisquer dois deles, só 32.6% a 45.8% dos erros caíam no mesmo lugar, e juntos eles superavam com folga qualquer um sozinho.

Por isso, quando escolhemos motores de apoio para um idioma, não perguntamos só o quanto cada um é preciso. Perguntamos se ele falha em lugares diferentes do motor principal. O coreano é um exemplo. Um motor parecia bom sozinho, mas seus piores erros eram quase idênticos aos dos outros dois: os três erravam as mesmas palavras do mesmo jeito. Nós o substituímos pelo Soniox, cujos erros se sobrepunham menos.

Mais uma coisa nos deixou cautelosos. Quando a AssemblyAI lançou uma nova versão, a taxa de erro publicada para áudio com mistura de idiomas caiu de 9.07% na geração anterior para 7.69%. Conferimos palavra por palavra em seis dos nossos idiomas. Todos saíram piores ou sem melhora: a nova versão acrescentava palavras que ninguém disse. Uma frase em inglês ganhou um "Bruh". Um "50,000 lire" em italiano virou "50 milhões". Pela taxa de erro, quase todos os seis pareciam melhorias, porque uma palavra a mais mal mexe nessa métrica. A documentação oficial explicava: a nova versão usa um decodificador no estilo de grandes modelos de linguagem. Voltamos para uma versão mais antiga.

O placar de um fornecedor mede as condições escolhidas pelo fornecedor. Não é a sua entrevista.

Onde ainda perdemos

Depois de defender o uso de vários motores, eis o que erramos.

A transcrição final ainda tinha 10 erros, todos em palavras do dia a dia. Em um deles, o entrevistado disse "minha esposa" e a transcrição disse "minha irmã".

Com a mesma entrada três vezes, nossa etapa de comparação recuperou 0, 3 e 3 erros. Essa etapa também tem aleatoriedade.

Tentamos mudar as regras de comparação e fizemos um teste A/B. Não ajudou, então revertemos. Investigando mais, o problema não estava nas regras, e sim uma etapa antes, no alinhamento. A palavra correta estava em algumas das transcrições de apoio, mas, como os limites das seções não coincidiam, ela nunca chegou à comparação. Se a resposta certa não está na entrada, nenhuma regra consegue escolhê-la.

Ainda não resolvemos isso por completo. Incluímos aqui porque é a mesma lição de tudo o que veio antes: vários motores valem exatamente o tanto de evidência que você consegue de fato pôr em jogo.

Por Zeyu Si