O que soundcheck faz?
O vídeo com IA parece finalizado muito antes de soar finalizado. Takes de TTS são colados em níveis diferentes, o fundo musical nunca faz ducking, a mixagem é empurrada contra o limitador para soar "alto", e a voz da IA mantém seu chiado entre 6-10 kHz e o boom entre 100-300 Hz.
O soundcheck transforma isso em números, corrige e prova a correção.
Como executar
python scripts/soundcheck.py analyze <arquivo> [--target youtube] [--music musica.wav] [--json]
python scripts/soundcheck.py fix <arquivo> [--target youtube] [--music musica.wav] [--out saida.wav] [--level] [--naturalize]
python scripts/soundcheck.py demo
fix precisa do ffmpeg no PATH. analyze e demo só precisam de Python 3 + numpy
(scipy é usado para filtragem mais rápida quando presente).
Forneça um vídeo para fix e ele retornará um vídeo: o áudio corrigido é multiplexado ao
fluxo de vídeo original (copiado, nunca recodificado). Sem --out, ele escreve
<nome>.soundcheck.mp4 ao lado da origem.
--level equaliza o nível de takes falados separados antes da masterização. Use-o para diálogo
gravado ou sintetizado linha por linha; não use em conteúdo liderado por música, onde um aumento ou queda
é o arranjo, não um defeito. analyze imprime os timestamps dos maiores saltos de take para
que você possa decidir.
Verifique antes de confiar
python scripts/verify.py # 20 verificações, saída 0 = tudo ok
A suíte verifica se nossos medidores concordam com o ebur128 do ffmpeg, se fix sai com 0 apenas quando
cada sinal passa, se o arquivo entregue é remedido com um medidor independente, se a dinâmica
não é esmagada e se silêncio / clipes curtos / mono 24 bits / mp4 / arquivos ausentes se comportam.
Se falhar na sua máquina, corrija isso antes de tocar no áudio de alguém.
Ao processar material real, sempre faça a comparação A/B. A conformidade medida é necessária, não suficiente.
Fluxo de trabalho
- Meça antes de tocar em qualquer coisa. Execute
analyze. Nunca comece a equalizar a partir de um palpite. - Leia o cartão de pontuação, não a pontuação. A pontuação é um resumo; os sinais reprovados são o trabalho.
- Corrija. Execute
fix --target <plataforma>. Ele escolhe a profundidade do EQ corretivo a partir da medição, aplica a cadeia, calcula um ganho estático a partir de nossa própria medição de loudness, limita e remede. - Verifique.
fixsai com código diferente de zero quando qualquer sinal medido ainda está fora da especificação. Não relate "pronto" em uma saída diferente de zero - relate os sinais restantes. - Compare A/B. Mantenha o original. Se a correção soar pior do que o problema (EQ excessivo, bombeamento), reduza a profundidade corretiva e reexecute. A conformidade medida é necessária, não suficiente.
Os 7 Sinais de Áudio de IA
| # | Sinal | Medido como | Alvo | Causa usual |
|---|---|---|---|---|
| 1 | Desnível entre takes | Níveis na região da fala, delta adjacente | <= 3 dB | Takes TTS renderizados separadamente |
| 2 | Sem headroom | Pico verdadeiro | <= -1 dBTP | Masterização "deixar alto" |
| 3 | Conflito voz/música | LUFS da voz - LUFS da música | >= 4 dB | Sem ducking por sidechain |
| 4 | Sibilância agressiva | Energia 6-10 kHz / 1-4 kHz | <= 0.45 | /s/ e /sh/ sintéticos |
| 5 | Lama médio-graves | Energia 100-300 Hz / 300-3k | <= 0.40 | Boom de proximidade, fundo musical grave alto |
| 6 | Sem piso, sem espaço | Piso de ruído vs nível do programa | >= 45 dB abaixo | Artefatos de redução de ruído, camadas de ruído ambiente |
| 7 | Problemas de fase / DC | Correlação L/R, offset DC | corr >= 0.2 | Takes concatenados, reamostragem |
O Sinal 3 só é executado quando você passa --music com uma faixa de música isolada. O Sinal 6 relata n/d
quando o material não tem passagem silenciosa - música baixa não é ruído, e um honesto
"não é possível avaliar" não é uma aprovação. O Sinal 1 relata onde estão os maiores saltos, para que um ser humano possa ouvir.
Escada de loudness
| Entrega | Integrado | Pico verdadeiro | Notas |
|---|---|---|---|
| YouTube / TikTok / Reels | -14 LUFS | -1 dBTP | plataformas normalizam aqui |
| Spotify | -14 LUFS | -1 dBTP | |
| Apple Music | -16 LUFS | -1 dBTP | |
| Podcast (estéreo / mono) | -16 / -19 LUFS | -1 dBTP | |
| Transmissão (EBU R128) | -23 LUFS | -1 dBTP | |
| Short drama / OTT (CN) | -24 LKFS | -1 dBTP | |
| Cinema | -27 LUFS | -2 dBTP | ancorado no diálogo |
Ordem da cadeia (importa)
passa-altas 70 Hz -> EQ subtrativo (lama, depois sibilância) -> compressão suave -> limitador -> ganho estático -> limitador
- A profundidade do EQ corretivo é derivada do sinal medido, não de um preset fixo.
- A compressão é suave de propósito (2,5:1, ~3-6 dB de redução de ganho). Isso é pós-produção, não design de som.
- O ganho é aplicado após a cadeia corretiva e medido na saída da cadeia, para que o arquivo entregue caia na especificação mesmo quando o EQ alterou a loudness.
- O limitador fica em 0,79 (-2 dBFS de pico de amostra) para sobreviver a overshoots entre amostras em -1 dBTP.
Diretrizes
- Nunca reivindique sucesso sem uma medição nova. O código de saída do script é a fonte da verdade.
- Não recodifique com perdas duas vezes. Decodifique para WAV uma vez, trabalhe em WAV, codifique uma vez no final.
- Não aumente a taxa de amostragem para fingir qualidade. Saída em 48 kHz; a taxa interna de 192 kHz do loudnorm não é um recurso.
- Não achate a dinâmica para atingir um número. Se atingir -14 LUFS exigir mais de 6 dB de limitação, diga isso e entregue -16 - uma mixagem comprimida é pior que uma silenciosa.
- Faixas de música permanecem separadas. Fazer ducking em uma faixa mixada destrói a voz; peça as faixas.
- Mantenha o original. Sempre escreva em um novo arquivo.
O que isso não pode corrigir
analyze imprime um aviso quando a origem tem quase nenhuma energia acima de 8 kHz - a assinatura de um
TTS de 16/22 kHz passado por uma sessão de 48 kHz. Essa falta de brilho não é um problema de masterização e nenhum EQ
traz de volta. Se o aviso disparar, diga isso em vez de "corrigido": re-renderize a voz com um TTS
neural e depois masterize.
--naturalize adiciona uma pequena sala, um piso de respiração/ruído ambiente e um pouco de ar em HF. Ele remove o
indicador "seco, digitalmente silencioso"; não pode inventar prosódia e não resgatará uma fonte robótica.
Nunca habilite por padrão em conteúdo liderado por música.
Limitações
- O sinal "fundo musical" precisa de uma faixa; sem ela, o equilíbrio voz/música não é medido.
- O piso de ruído só é significativo quando há passagens realmente silenciosas.
- O pico verdadeiro é superamostrado 4x; emissoras que exigem 8x devem verificar com seu próprio medidor.
- Esta é uma ferramenta de entrega, não uma mixagem criativa. Ela não tornará uma performance ruim boa.