Por que a detecção de turno quebra com o áudio da TV
Uma televisão é um segundo falante, e um detector de atividade de voz marca como fala os quadros que parecem fala, seja qual for a voz. Na nossa matriz o Silero VAD marca 58.2% dos quadros sem fala-alvo como fala com uma voz concorrente a 0 dB, contra 7.0% em áudio limpo.
A detecção de turno quebra com o áudio da TV porque uma televisão é um segundo falante, e um detector de atividade de voz marca como fala os quadros que parecem fala, seja qual for a voz. Na nossa matriz o Silero VAD marca como fala 58.2% dos quadros sem fala-alvo quando uma voz concorrente está a 0 dB de SNR, contra 7.0% em áudio limpo, e um agente que toma esses quadros pelo cliente falando vai interromper a própria frase.
Os números vêm de benchmark.json (generatedAt 2026-08-14): Silero VAD com limiar 0.5, blocos de 512 amostras, 19 condições, dez falantes. Lemos "falso alarme" como a fração de quadros de silêncio de referência que o VAD marcou como fala; a definição do campo está no harness.
O mecanismo
Um agente de voz toma duas decisões que dependem do mesmo sinal. Enquanto o agente fala, o detector decide se o cliente começou a falar (barge-in). Enquanto o cliente fala, decide se ele terminou. Ambas partem de uma probabilidade de fala por quadro. Uma televisão, um rádio ou uma segunda pessoa na sala produzem quadros com alta probabilidade de fala que não são do cliente. O detector não distingue, porque foi treinado para encontrar fala, não para encontrar o seu falante. O resultado é um falso barge-in: o agente se corta, ou espera um fim de turno que nunca chega porque a TV mantém a linha "ativa".
Não medimos eventos de barge-in diretamente. Medimos a taxa de falso alarme do detector por quadro, que é a entrada dessa decisão. Como um agente específico converte quadros em interrupção depende dos seus limiares e tempos de espera (suposição: a conversão é monotônica, então mais quadros de falso alarme significam mais interrupções falsas).
O que o VAD faz com vozes concorrentes
| Condição | Falso alarme do VAD, bruto | Falso alarme do VAD, focus v8_2 | VAD F1, bruto | VAD F1, focus v8_2 |
|---|---|---|---|---|
| clean | 7.0% | 7.3% | 0.976 | 0.966 |
| noise_snr5 | 6.3% | 9.2% | 0.966 | 0.957 |
| babble_snr5 | 97.7% | 92.2% | 0.845 | 0.852 |
| competing_snr0 | 58.2% | 58.2% | 0.898 | 0.897 |
| competing_snr5 | 58.1% | 53.4% | 0.899 | 0.903 |
| competing_snr10 | 57.8% | 44.4% | 0.900 | 0.914 |
Medido em 2026-08-14, 190 palavras de referência por condição. O F1 quase não muda entre áudio limpo e com voz concorrente, e por isso um único número de F1 esconde o problema: o detector ainda encontra a fala-alvo e também encontra todo o resto.
O isolamento resolve?
Em parte, e nem em todo lugar. A 10 dB de SNR o modelo focus reduziu o falso alarme de 57.8% para 44.4%; a 5 dB foi de 58.1% para 53.4%; a 0 dB não se moveu. Na mesma condição competing_snr10 o WER foi de 6.3% para 12.1% e as inserções de 2 para 7, então um falso alarme menor não comprou uma transcrição melhor ali.
| Caminho | VAD F1 médio (19 condições) | Diferença versus bruto | Inserções |
|---|---|---|---|
| raw / passthrough | 0.9477 | +0.0000 | 103 |
| anecho focus v8_2 | 0.9413 | -0.0065 | 119 |
| ai-coustics Quail L | 0.9427 | -0.0050 | 128 |
| GTCRN | 0.9454 | -0.0023 | 223 |
| DeepFilterNet3 | 0.9011 | -0.0466 | 381 |
Agregado nas 19 condições, nenhuma engine da tabela melhorou o VAD F1 médio em relação ao áudio sem tratamento, a nossa incluída (0.9477 bruto contra 0.9413). O argumento a favor de um pipeline dividido, com o VAD em um ramo e o reconhecedor em outro, está em o pipeline dividido; estes números são o motivo de ele ser um desenho a medir e não um interruptor a ligar.
O que fazer
Meça a taxa de falso alarme com uma gravação da sua própria sala com a TV ligada, não com um conjunto de teste limpo. Se for alta, aumente o limiar do VAD e o tempo de espera do barge-in antes de recorrer a um modelo, e trate qualquer modelo de isolamento como algo a ser pontuado contra o áudio bruto, como fizemos em cada linha acima.
FAQ
Por que a detecção de turno falha com áudio de TV? Um VAD detecta fala, não um falante, então o diálogo da TV produz os mesmos quadros de fala que o cliente. Na nossa matriz esses quadros elevam o falso alarme a 58.2% a 0 dB.
O isolamento de falante evita o falso barge-in? Reduziu o falso alarme do VAD a 5 e 10 dB na nossa execução e não a 0 dB, e não melhorou o VAD F1 agregado. Não medimos os eventos de barge-in em si.
Um VAD melhor basta? Testamos um VAD, o Silero com limiar 0.5. Não fazemos nenhuma afirmação sobre outros detectores.