Phase 06 - Lesson 17
Avaliação de áudio — WER, MOS, UTMOS, MMAU, FAD e os leaderboards abertos
This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.
Você não pode lançar o que não consegue medir. Esta lição nomeia as métricas de 2026 para cada tarefa de áudio: ASR (WER, CER, RTFx), TTS (MOS, UTMOS, SECS, WER por ida-e-volta no ASR), áudio-linguagem (MMAU, LongAudioBench), música (FAD, CLAP) e locutor (EER). Além dos leaderboards onde você compara.
Tipo: Aprender Linguagens: Python Pré-requisitos: Fase 6 · 04, 06, 07, 09, 10; Fase 2 · 09 (Avaliação de Modelos) Tempo: ~60 minutos
O Problema
Toda tarefa de áudio tem múltiplas métricas, cada uma medindo um eixo diferente. Usar a métrica errada é como você lança um modelo que parece ótimo no seu dashboard e péssimo em produção. A lista canônica de 2026:
| Tarefa | Primária | Secundária |
|---|---|---|
| ASR | WER | CER · RTFx · latência do primeiro token |
| TTS | MOS / UTMOS | SECS · WER por ida-e-volta no ASR · CER · TTFA |
| Clonagem de voz | SECS (cosseno ECAPA) | MOS · CER |
| Verificação de locutor | EER | minDCF · FAR / FRR no ponto de operação |
| Diarização | DER | JER · confusão de locutores |
| Classificação de áudio | top-1 · mAP | F1 macro · recall por classe |
| Geração de música | FAD | CLAP · MOS de painel de escuta |
| Modelo de áudio-linguagem | MMAU-Pro | LongAudioBench · AudioCaps FENSE |
| S2S em streaming | latência P50/P95 | WER · MOS |
O Conceito
Métricas de ASR
WER (Word Error Rate). (S + D + I) / N. Passe para minúsculas, remova pontuação, normalize números antes de pontuar. Use jiwer ou o whisper_normalizer da OpenAI. < 5% = paridade humana em fala lida.
CER (Character Error Rate). Mesma fórmula, em nível de caractere. Usada para línguas tonais (mandarim, cantonês) onde a segmentação de palavras é ambígua.
RTFx (fator inverso de tempo real). Segundos de áudio processados por segundo de relógio. Maior é melhor. O Parakeet-TDT atinge 3380×. O Whisper-large-v3 fica em ~30×.
Latência do primeiro token. Tempo de relógio desde a entrada de áudio até o primeiro token da transcrição. Crítico para streaming. Deepgram Nova-3: ~150 ms.
Métricas de TTS
MOS (Mean Opinion Score). Nota humana de 1 a 5. Padrão-ouro, mas lento. Colete mais de 20 ouvintes por amostra, mais de 100 amostras por modelo.
UTMOS (2022-2026). Preditor de MOS aprendido. Correlaciona ~0,9 com o MOS humano em benchmarks padrão. F5-TTS: UTMOS 3,95; verdade de referência: 4,08.
SECS (Speaker Encoder Cosine Similarity). Para clonagem de voz. Cosseno do embedding ECAPA entre a referência e a saída clonada. > 0,75 = clone reconhecível.
WER por ida-e-volta no ASR. Rode o Whisper sobre a saída do TTS e compute o WER contra o texto de entrada. Captura regressões de inteligibilidade. SOTA de 2026: < 2% CER.
TTFA (time-to-first-audio). Latência de relógio. Kokoro-82M: ~100 ms; F5-TTS: ~1 s.
Específico de clonagem de voz
SECS + MOS + CER como um trio. Uma clonagem com SECS alto mas MOS baixo significa timbre-certo-mas-não-natural; o oposto significa voz natural mas locutor errado.
Verificação de locutor
EER (Equal Error Rate). O limiar onde a Taxa de Falsa Aceitação iguala a Taxa de Falsa Rejeição. ECAPA no VoxCeleb1-O: 0,87%.
minDCF (custo mínimo de detecção). Custo ponderado em um ponto de operação escolhido (frequentemente FAR=0,01). Mais relevante para produção do que o EER.
Diarização
DER (Diarization Error Rate). (FA + Miss + Confusion) / total_speaker_time. Fala perdida + fala de falso alarme + confusão de locutores, cada uma como uma fração. Reuniões AMI: DER ~10-20% é realista. pyannote 3.1 + Precision-2 comercial: <10% DER em áudio bem gravado.
JER (Jaccard Error Rate). Alternativa ao DER, robusta ao viés de segmentos curtos.
Classificação de áudio
Multirrótulo: mAP (mean Average Precision) sobre todas as classes. AudioSet: 0,548 mAP para o BEATs-iter3.
Multiclasse exclusiva: acurácia top-1, top-5. Speech Commands v2: 99,0% top-1 (Audio-MAE).
Desbalanceada: F1 macro + recall por classe. Reporte por classe — a acurácia agregada esconde quais classes falham.
Geração de música
FAD (Fréchet Audio Distance). Distância entre as distribuições de embeddings VGGish de áudio real vs gerado. MusicGen-small no MusicCaps: 4,5. MusicLM: 4,0. Menor é melhor.
CLAP Score. Pontuação de alinhamento texto-áudio usando embeddings CLAP. > 0,3 = alinhamento razoável.
MOS de painel de escuta. Ainda a palavra final para música de nível de consumo. Suno v5 ELO 1293 na TTS Arena (de preferências humanas pareadas).
Benchmarks de áudio-linguagem
MMAU (Massive Multi-Audio Understanding). 10k pares áudio-QA.
MMAU-Pro. 1800 itens difíceis, quatro categorias: fala / som / música / multi-áudio. Acerto aleatório de 25% em 4 vias. Gemini 2.5 Pro geral ~60%; multi-áudio ~22% em todos os modelos.
LongAudioBench. Clipes de vários minutos com consultas semânticas. Audio Flamingo Next supera o Gemini 2.5 Pro.
AudioCaps / Clotho. Benchmarks de legendagem. Métricas SPICE, CIDEr, FENSE.
Fala-para-fala em streaming
Latência P50 / P95 / P99. Tempo de relógio do fim da fala do usuário até a primeira resposta audível. Moshi: 200 ms; GPT-4o Realtime: 300 ms.
WER / MOS na saída.
Responsividade a barge-in. Tempo da interrupção do usuário até o silenciamento do assistente. Alvo < 150 ms.
Os leaderboards de 2026
| Leaderboard | Acompanha | URL |
|---|---|---|
| Open ASR Leaderboard (HF) | inglês + multilíngue + forma longa | huggingface.co/spaces/hf-audio/open_asr_leaderboard |
| TTS Arena (HF) | TTS em inglês | huggingface.co/spaces/TTS-AGI/TTS-Arena |
| Artificial Analysis Speech | TTS + STT, ELO de votos pareados | artificialanalysis.ai/speech |
| MMAU-Pro | raciocínio LALM | mmaubenchmark.github.io |
| SpeakerBench / VoxSRC | reconhecimento de locutor | voxsrc.github.io |
| Subconjunto de música do MMAU | LALM de música | (dentro do MMAU) |
| Benchmark HEAR | áudio autossupervisionado | hearbenchmark.com |
Construa
Passo 1: WER com normalização
from jiwer import wer, Compose, ToLowerCase, RemovePunctuation, Strip
transform = Compose([ToLowerCase(), RemovePunctuation(), Strip()])
score = wer(
truth="Please turn on the lights.",
hypothesis="please turn on the light",
truth_transform=transform,
hypothesis_transform=transform,
)
# ~0.17
Passo 2: WER de ida-e-volta no TTS
def ttr_wer(tts_model, asr_model, texts):
errors = []
for txt in texts:
audio = tts_model.synthesize(txt)
recog = asr_model.transcribe(audio)
errors.append(wer(truth=txt, hypothesis=recog))
return sum(errors) / len(errors)
Passo 3: SECS para clonagem de voz
from speechbrain.inference.speaker import EncoderClassifier
sv = EncoderClassifier.from_hparams("speechbrain/spkrec-ecapa-voxceleb")
emb_ref = sv.encode_batch(load_wav("reference.wav"))
emb_clone = sv.encode_batch(load_wav("cloned.wav"))
secs = torch.nn.functional.cosine_similarity(emb_ref, emb_clone, dim=-1).item()
Passo 4: FAD para geração de música
from frechet_audio_distance import FrechetAudioDistance
fad = FrechetAudioDistance()
score = fad.get_fad_score("generated_folder/", "reference_folder/")
Passo 5: EER para verificação de locutor (mesmo código da Lição 6)
def eer(same_scores, diff_scores):
thresholds = sorted(set(same_scores + diff_scores))
best = (1.0, 0.0)
for t in thresholds:
far = sum(1 for s in diff_scores if s >= t) / len(diff_scores)
frr = sum(1 for s in same_scores if s < t) / len(same_scores)
if abs(far - frr) < best[0]:
best = (abs(far - frr), (far + frr) / 2)
return best[1]
Use
Acople cada deploy a um harness de avaliação fixo que roda a cada atualização de modelo. Três regras cardeais:
- Normalize antes de pontuar. Minúsculas, remoção de pontuação, expansão de números. Reporte a regra de normalização.
- Reporte distribuições, não médias. P50/P95/P99 para latência. Recall por classe para classificação. Por categoria para o MMAU.
- Rode um benchmark público canônico. Mesmo que seus dados de produção difiram, reportar no Open ASR / TTS Arena / MMAU permite que revisores comparem maçãs com maçãs.
Armadilhas
- Extrapolação do UTMOS. Treinado em fala limpa estilo VCTK; pontua mal áudio ruidoso / clonado / emocional.
- Viés do painel de MOS. 20 trabalhadores do Amazon Mechanical Turk ≠ 20 usuários-alvo. Pague por um painel de domínio se o que está em jogo for alto.
- FAD depende do conjunto de referência. Compare contra a mesma distribuição de referência entre os modelos.
- WER agregado. Um WER geral de 5% pode esconder 30% de WER em fala com sotaque. Reporte por fatia demográfica.
- Saturação de benchmarks públicos. A maioria dos modelos de fronteira está perto do teto em benchmarks padrão. Construa um conjunto interno de teste reservado que reflita seu tráfego.
Lance
Salve como outputs/skill-audio-evaluator.md. Escolha métricas, benchmarks e formato de relatório para qualquer lançamento de modelo de áudio.
Exercícios
- Fácil. Rode
code/main.py. Compute WER / CER / EER / SECS / FAD-ish / MMAU-ish sobre entradas de brinquedo. - Médio. Construa um harness de WER de ida-e-volta no TTS. Rode a saída do seu Kokoro ou F5-TTS pelo Whisper. Compute o WER sobre 50 prompts. Sinalize prompts com WER > 10%.
- Difícil. Pontue a sua escolha de LALM da Lição 10 nos subconjuntos de fala + multi-áudio do MMAU-Pro (50 itens cada). Reporte a acurácia por categoria e compare com o número publicado.
Termos-Chave
| Termo | O que as pessoas dizem | O que realmente significa |
|---|---|---|
| WER | Pontuação de ASR | (S+D+I)/N em nível de palavra após normalização. |
| CER | WER de caractere | Para línguas tonais ou sistemas em nível de caractere. |
| MOS | Opinião humana | Nota de 1 a 5; mais de 20 ouvintes × 100 amostras. |
| UTMOS | Preditor de MOS por ML | Modelo aprendido; correlaciona ~0,9 com o MOS humano. |
| SECS | Similaridade de clone de voz | Cosseno ECAPA entre referência e clone. |
| EER | Pontuação de verif. de locutor | Limiar onde FAR = FRR. |
| DER | Pontuação de diarização | (FA + Miss + Confusion) / total. |
| FAD | Qualidade de geração de música | Distância de Fréchet em embeddings VGGish. |
| RTFx | Throughput | Segundos de áudio por segundo de relógio. |
Leitura Adicional
- jiwer — biblioteca de WER/CER com utilitários de normalização.
- UTMOS (Saeki et al. 2022) — preditor de MOS aprendido.
- Fréchet Audio Distance (Kilgour et al. 2019) — o padrão para geração de música.
- Open ASR Leaderboard — rankings ao vivo de 2026.
- TTS Arena — leaderboard de TTS por voto humano.
- MMAU-Pro benchmark — leaderboard de raciocínio LALM.
- HEAR benchmark — benchmarks de SSL de áudio.