Communitygithub.com

soundcheck

Corrige l'audio qui sonne « IA ». Utilisez-le lorsqu'une vidéo, une voix off, un podcast, un court métrage, un enregistrement d'écran ou une vidéo a un son dur, boueux, fin, trop silencieux ou trop fort, écrête, ou change de niveau entre les segments - et avant de livrer sur YouTube, TikTok, Spotify, Apple, podcast ou diffusion. Mesure la sonie intégrée (LUFS), le crête vrai, la sifflement, la boue médium-grave, la dérive de segment et la phase selon les 7 Indices Audio IA, applique une chaîne corrective, puis re-mesure et indique si la spécification de livraison a été réellement atteinte.

Qu'est-ce que soundcheck ?

soundcheck est un outil de post-production audio conçu pour détecter et corriger les artefacts audio caractéristiques des voix générées par IA et des traitements automatisés. Il identifie sept « indices audio IA » (inégalités de niveau entre prises, absence de tête d'affichage, conflit voix/musique, sifflement agressif, boue médium-grave, absence de plancher sonore, problèmes de phase) et applique une chaîne corrective paramétrique adaptée à la mesure. L'outil supporte les livraisons sur YouTube, TikTok, Spotify, Apple Music, podcasts, broadcast (EBU R128) et cinéma, avec des cibles de sonie et de crête spécifiques. Après correction, il re-mesure l'audio pour prouver que le fichier livré respecte les spécifications (retour 0 en cas de succès, non-zéro avec la liste des échecs). Fonctionne en ligne de commande avec Python 3, nécessite ffmpeg pour la correction, et propose un mode de vérification (verify) pour valider l'installation. Les principes directeurs incluent : ne jamais accepter la réussite sans re-mesure, ne pas ré-encoder en perte deux fois, ne pas aplatir la dynamique pour atteindre un nombre, et conserver l'original.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/liuchong110/soundcheck/tree/main

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait soundcheck ?

L'IA vidéo semble terminée bien avant que l'audio ne semble terminée. Les prises TTS sont collées ensemble à des niveaux différents, le lit musical ne s'efface jamais, le mix est poussé dans le limiteur pour sonner « fort », et la voix IA conserve son sifflement 6-10 kHz et son boom 100-300 Hz.

soundcheck transforme cela en chiffres, le corrige et prouve la correction.

Lancer

python scripts/soundcheck.py analyze <fichier> [--target youtube] [--music musique.wav] [--json]
python scripts/soundcheck.py fix     <fichier> [--target youtube] [--music musique.wav] [--out sortie.wav] [--level] [--naturalize]
python scripts/soundcheck.py demo

fix nécessite ffmpeg dans le PATH. analyze et demo nécessitent seulement Python 3 + numpy (scipy est utilisé pour un filtrage plus rapide lorsqu'il est présent).

Donnez à fix une vidéo et il renvoie une vidéo : l'audio corrigé est multiplexé avec la trame vidéo originale (copiée, jamais ré-encodée). Sans --out, il écrit <nom>.soundcheck.mp4 à côté de la source.

--level ajuste le niveau des prises de parole séparées avant le mastering. Utilisez-le pour des dialogues enregistrés ou synthétisés ligne par ligne ; ne l'utilisez pas sur du contenu musical, où une montée ou une baisse fait partie de l'arrangement, pas un défaut. analyze affiche les horodatages des plus grands sauts de prise pour que vous puissiez décider.

Vérifier avant de faire confiance

python scripts/verify.py        # 20 vérifications, exit 0 = tout bon

La suite vérifie que nos compteurs sont d'accord avec le ebur128 de ffmpeg, que fix renvoie 0 uniquement lorsque chaque indice est réussi, que le fichier livré est re-mesuré avec un compteur indépendant, que la dynamique n'est pas écrasée, et que les silences/courts clips/mono 24-bit/mp4/fichiers manquants se comportent correctement. Si cela échoue sur votre machine, corrigez cela avant de toucher à l'audio de quiconque.

Lorsque vous traitez du matériel réel, faites toujours un test A/B. La conformité mesurée est nécessaire, pas suffisante.

Flux de travail

  1. Mesurer avant de toucher quoi que ce soit. Exécutez analyze. Ne commencez jamais l'égalisation à partir d'une supposition.
  2. Lire le tableau de bord, pas le score. Le score est un résumé ; les indices en échec sont le travail.
  3. Corriger. Exécutez fix --target <plateforme>. Il choisit la profondeur corrective de l'égalisation à partir de la mesure, applique la chaîne, calcule un gain statique à partir de notre propre mesure de sonie, limite et re-mesure.
  4. Vérifier. fix renvoie non-zéro lorsqu'un indice mesuré est encore hors spécification. Ne signalez pas « terminé » sur un code de sortie non-zéro - signalez plutôt les indices restants.
  5. A/B. Conservez l'original. Si la correction sonne pire que le problème (sur-égalisé, pompage), réduisez la profondeur corrective et relancez. La conformité mesurée est nécessaire, pas suffisante.

Les 7 Indices Audio IA

#IndiceMesuré commeCibleCause habituelle
1Inégalité de niveau entre prisesNiveaux de région de parole, delta adjacent<= 3 dBPrises TTS rendues séparément
2Aucune tête d'affichageCrête vrai<= -1 dBTPMastering « rends-le fort »
3Combat voix/musiqueLUFS voix - LUFS musique>= 4 dBAbsence de ducking par sidechain
4Sifflement agressifÉnergie 6-10 kHz / 1-4 kHz<= 0.45/s/ et /sh/ synthétiques
5Boue médium-graveÉnergie 100-300 Hz / 300-3k<= 0.40Boom de proximité, lit de basse fort
6Pas de plancher, pas d'espaceNiveau de plancher sonore vs niveau programme>= 45 dB en dessousArtefacts de débruitage, couches de son ambiant
7Problèmes de phase / DCCorrélation L/R, offset DCcorr >= 0.2Prises concaténées, ré-échantillonnage

L'indice 3 est exécuté uniquement lorsque vous passez --music avec une piste de musique isolée. L'indice 6 signale n/a lorsque le matériel n'a pas de passage silencieux - la musique douce n'est pas du bruit, et un honnête « impossible à évaluer » n'est pas une réussite. L'indice 1 signale où se trouvent les plus grands sauts, pour qu'un humain puisse écouter.

Échelle de sonie

LivraisonIntégréCrête vraiNotes
YouTube / TikTok / Reels-14 LUFS-1 dBTPles plateformes normalisent ici
Spotify-14 LUFS-1 dBTP
Apple Music-16 LUFS-1 dBTP
Podcast (stéréo / mono)-16 / -19 LUFS-1 dBTP
Broadcast (EBU R128)-23 LUFS-1 dBTP
Court métrage / OTT (CN)-24 LKFS-1 dBTP
Cinéma-27 LUFS-2 dBTPancré sur le dialogue

Ordre de la chaîne (c'est important)

passe-haut 70 Hz -> EQ soustractif (boue, puis sifflement) -> compression douce -> limiteur -> gain statique -> limiteur

  • La profondeur corrective de l'égalisation est dérivée de l'indice mesuré, pas d'un préréglage fixe.
  • La compression est douce intentionnellement (2.5:1, ~3-6 dB de réduction de gain). C'est de la post-prod, pas de la conception sonore.
  • Le gain est appliqué après la chaîne corrective et mesuré sur la sortie de la chaîne, de sorte que le fichier livré tombe dans les spécifications même lorsque l'égalisation a changé la sonie.
  • Le limiteur est à 0.79 (-2 dBFS échantillon crête) pour survivre aux dépassements inter-échantillons à -1 dBTP.

Garde-fous

  • Ne jamais revendiquer le succès sans une nouvelle mesure. Le code de sortie du script est la source de vérité.
  • Ne pas ré-encoder en perte deux fois. Décodez en WAV une fois, travaillez en WAV, encodez une fois à la fin.
  • Ne pas sur-échantillonner pour simuler la qualité. Sortie à 48 kHz ; la fréquence interne 192 kHz de loudnorm n'est pas une fonctionnalité.
  • Ne pas aplatir la dynamique pour atteindre un nombre. Si atteindre -14 LUFS nécessite plus de 6 dB de limitation, dites-le et livrez à -16 à la place - un mix écrasé est pire qu'un mix silencieux.
  • Les pistes musicales restent séparées. Ducking sur un mix mixé détruit la voix ; demandez des pistes séparées.
  • Conservez l'original. Écrivez toujours dans un nouveau fichier.

Ce que cela ne peut pas corriger

analyze affiche un avertissement lorsque la source n'a presque pas d'énergie au-dessus de 8 kHz - la signature d'un TTS 16/22 kHz passé dans une session 48 kHz. Cette matité n'est pas un problème de mastering et aucun égaliseur ne la ramène. Si l'avertissement se déclenche, dites-le au lieu de « corrigé » : re-rendez la voix avec un TTS neuronal, puis masterisez.

--naturalize ajoute une petite salle, un plancher de souffle/bruit ambiant et un peu d'air HF. Cela supprime le signal « sec, silence numérique » ; cela ne peut pas inventer de prosodie et ne sauvera pas une source robotique. Ne l'activez jamais par défaut sur du contenu musical.

Limites

  • L'indice « lit musical » nécessite une piste séparée ; sans elle, l'équilibre voix/musique n'est pas mesuré.
  • Le plancher sonore n'a de sens que lorsqu'il y a de vrais passages calmes.
  • Le crête vrai est sur-échantillonné 4x ; les diffuseurs exigeant 8x doivent vérifier avec leur propre compteur.
  • C'est un outil de livraison, pas un mix créatif. Cela ne rendra pas une mauvaise performance bonne.

Skills associés