Communitygithub.com

soundcheck

Repariert Audio, das sich „KI-artig“ anhört. Verwenden Sie es, wenn ein Video, Voiceover, Podcast, Kurzdrama, Bildschirmaufnahme oder Reel schrill, matschig, dünn, zu leise oder zu laut klingt, übersteuert oder zwischen Segmenten seinen Pegel ändert – vor der Auslieferung an YouTube, TikTok, Spotify, Apple, Podcast oder Broadcast. Es misst integrierte Lautheit (LUFS), True Peak, Zischlaute, Tiefton-„Matsch“, Segmentdrift und Phase anhand der 7 KI-Audio-Indikatoren, wendet eine Korrekturkette an, misst dann erneut und berichtet, ob die Lieferspezifikation tatsächlich eingehalten wurde.

Was ist soundcheck?

soundcheck ist ein technisches Tool für die automatisierte Qualitätskontrolle und Korrektur von KI-generiertem oder KI-nachbearbeitetem Audio. Es wurde für Entwickler und Content-Ersteller entwickelt, die mit TTS-Stimmen, automatisierten Podcasts oder KI-unterstützten Videoproduktionen arbeiten. Das Tool identifiziert sieben spezifische „KI-Audio-Indikatoren“ (z. B. Lautstärkesprünge zwischen Takes, übermäßige Zischlaute, fehlende Dynamik, Phasenprobleme) und liefert messbare Zahlenwerte. Auf Basis dieser Analyse wendet es eine zielgerichtete Korrekturkette an – bestehend aus Hochpassfilter, subtraktivem EQ, sanfter Kompression, statischer Verstärkung und Begrenzung – und misst das Ergebnis erneut. soundcheck unterstützt Ausgabe-Plattformen wie YouTube, Spotify, Apple Music, Podcasts und Broadcast-Formate und passt die Korrekturparameter an die jeweilige Lieferspezifikation an. Es läuft auf der Kommandozeile und benötigt ffmpeg für die Korrektur, während Analyse und Demo nur Python 3 mit numpy und optional scipy erfordern. Das Tool kann sowohl Audiodateien als auch Videodateien verarbeiten (Audio wird ersetzt, Video-Stream bleibt unverändert). Eine umfassende Testsuite (verify.py) stellt sicher, dass die Messungen mit ffmpeg übereinstimmen und die Korrektur die Spezifikationen zuverlässig einhält. Die Entwickler betonen jedoch, dass messbare Compliance notwendig, aber nicht hinreichend ist – ein abschließender Hörtest (A/B-Vergleich) wird immer empfohlen.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht soundcheck?

KI-Videos sehen aus, als wären sie fertig, lange bevor sie klingen, als wären sie fertig. TTS-Takes werden auf unterschiedlichen Lautstärkepegeln aneinandergereiht, die Musikuntermalung duckt sich nie, der Mix wird in den Limiter gedrückt, um „laut“ zu klingen, und die KI-Stimme behält ihr 6–10 kHz Zischen und ihren 100–300 Hz Dröhnton.

soundcheck macht daraus Zahlen, korrigiert es und beweist die Korrektur.

Ausführen

python scripts/soundcheck.py analyze <datei> [--target youtube] [--music musik.wav] [--json]
python scripts/soundcheck.py fix     <datei> [--target youtube] [--music musik.wav] [--out ausgabe.wav] [--level] [--naturalize]
python scripts/soundcheck.py demo

fix benötigt ffmpeg im PATH. analyze und demo benötigen nur Python 3 + numpy (scipy wird für schnellere Filterung verwendet, falls vorhanden).

Übergib fix ein Video und es gibt ein Video zurück: Der korrigierte Ton wird gegen den Original-Videostream gemuxt (kopiert, nie neu codiert). Ohne --out schreibt es <name>.soundcheck.mp4 neben die Quelldatei.

--level gleicht den Pegel separater Sprachaufnahmen vor dem Mastering an. Verwende es für Dialoge, die zeilenweise aufgenommen oder synthetisiert wurden; verwende es nicht für musikgeführte Inhalte, bei denen ein An- oder Abschwellen Teil der Anordnung und kein Fehler ist. analyze gibt die Zeitstempel der größten Pegelsprünge aus, damit du entscheiden kannst.

Überprüfe, bevor du ihm vertraust

python scripts/verify.py        # 20 Prüfungen, Exit 0 = alles in Ordnung

Die Testsuite prüft, dass unsere Meter mit ffmpregs ebur128 übereinstimmen, dass fix nur dann mit Exit 0 beendet, wenn jeder Indikator bestanden wird, dass die gelieferte Datei mit einem unabhängigen Meter erneut gemessen wird, dass die Dynamik nicht plattgemacht wird und dass Stille / kurze Clips / Mono 24-Bit / mp4 / fehlende Dateien korrekt behandelt werden. Wenn dies auf deinem Rechner fehlschlägt, behebe es, bevor du jemandes Audio anfasst.

Wenn du echtes Material verarbeitest, vergleiche immer A/B. Messbare Einhaltung ist notwendig, nicht hinreichend.

Arbeitsablauf

  1. Messen, bevor du irgendetwas anfasst. Führe analyze aus. Beginne nie mit dem EQ aus einer Vermutung heraus.
  2. Lies die Bewertungstabelle, nicht die Punktezahl. Die Punktezahl ist eine Zusammenfassung; die durchgefallenen Indikatoren sind die eigentliche Arbeit.
  3. Korrigieren. Führe fix --target <plattform> aus. Es wählt die EQ-Korrekturtiefe basierend auf der Messung, wendet die Kette an, berechnet eine statische Verstärkung aus unserer eigenen Lautheitsmessung, begrenzt und misst erneut.
  4. Überprüfen. fix beendet sich mit einem Fehlercode ungleich Null, wenn ein gemessener Indikator noch außerhalb der Spezifikation liegt. Melde „Fertig“ erst bei Exit 0 – melde stattdessen die verbleibenden Indikatoren.
  5. A/B-Vergleich. Behalte das Original. Wenn die Korrektur schlechter klingt als das Problem (über-EQ, Pumpen), reduziere die Korrekturtiefe und führe es erneut aus. Messbare Einhaltung ist notwendig, nicht hinreichend.

Die 7 KI-Audio-Indikatoren

#IndikatorGemessen alsZielHäufige Ursache
1Lautstärkeunterschiede zwischen TakesSprachband-Pegel der Regionen, benachbarte Differenz<= 3 dBTTS-Takes wurden separat gerendert
2Kein HeadroomTrue Peak<= -1 dBTP„Mach es laut“-Mastering
3Stimme/Musik-KonfliktStimme LUFS – Musik LUFS>= 4 dBKein Sidechain-Ducking
4Schrille ZischlauteEnergie 6–10 kHz / 1–4 kHz<= 0.45Synthetische /s/ und /sh/
5Tiefton-„Matsch“Energie 100–300 Hz / 300–3 kHz<= 0.40Nähe-Boom, lautes Bassbett
6Kein Boden, kein RaumRauschboden vs. Programmpegel>= 45 dB darunterEntrausch-Artefakte, geschichteter Raumklang
7Phasen- / DC-ProblemeL/R-Korrelation, DC-OffsetKorr >= 0.2Aneinandergereihte Takes, Resampling

Indikator 3 wird nur ausgeführt, wenn du --music mit einem isolierten Musikstamm übergibst. Indikator 6 meldet „n/a“, wenn das Material keine stille Passage hat – leise Musik ist kein Rauschen, und ein ehrliches „kann nicht bewertet werden“ ist kein Bestehen. Indikator 1 meldet, wo die größten Sprünge sind, damit ein Mensch zuhören kann.

Lautheitsleiter

AuslieferungIntegriertTrue PeakAnmerkungen
YouTube / TikTok / Reels-14 LUFS-1 dBTPPlattformen normalisieren hier
Spotify-14 LUFS-1 dBTP
Apple Music-16 LUFS-1 dBTP
Podcast (Stereo / Mono)-16 / -19 LUFS-1 dBTP
Broadcast (EBU R128)-23 LUFS-1 dBTP
Kurzdrama / OTT (CN)-24 LKFS-1 dBTP
Kino-27 LUFS-2 dBTPdialogverankert

Kettenreihenfolge (sie ist wichtig)

Hochpass 70 Hz -> subtraktiver EQ (Matsch, dann Zischlaute) -> sanfte Kompression -> Begrenzer -> statische Verstärkung -> Begrenzer

  • Die EQ-Korrekturtiefe wird aus dem gemessenen Indikator abgeleitet, nicht aus einem festen Preset.
  • Die Kompression ist bewusst sanft (2,5:1, ~3–6 dB Gain-Reduktion). Dies ist Postproduktion, nicht Sounddesign.
  • Die Verstärkung wird nach der Korrekturkette angewendet und am Ausgang der Kette gemessen, sodass die gelieferte Datei die Spezifikation einhält, selbst wenn der EQ die Lautstärke verändert hat.
  • Der Begrenzer liegt bei 0,79 (-2 dBFS Sample Peak), um Zwischenabtast-Überschwinger bei -1 dBTP zu überstehen.

Leitplanken

  • Behaupte niemals Erfolg ohne eine frische Messung. Der Exit-Code des Skripts ist die Quelle der Wahrheit.
  • Codiere verlustbehaftet nicht zweimal. Dekodiere einmal nach WAV, arbeite in WAV, codiere einmal am Ende.
  • Upsample nicht, um Qualität vorzutäuschen. Gib 48 kHz aus; die 192 kHz interne Rate von loudnorm ist kein Feature.
  • Plätte die Dynamik nicht, um einen Zielwert zu erreichen. Wenn das Erreichen von -14 LUFS mehr als 6 dB Begrenzung erfordert, sag es und liefere stattdessen -16 aus – ein plattgedrückter Mix ist schlimmer als ein leiser.
  • Musikstämme bleiben getrennt. Das Ducken eines gemischten Tracks zerstört die Stimme; fordere Stämme an.
  • Behalte das Original. Schreibe immer in eine neue Datei.

Was dies nicht beheben kann

analyze gibt eine Warnung aus, wenn die Quelle fast keine Energie über 8 kHz hat – das Kennzeichen einer 16/22 kHz TTS, die durch eine 48 kHz Session gepumpt wurde. Diese Mattigkeit ist kein Mastering-Problem und kein EQ bringt sie zurück. Wenn die Warnung erscheint, sag es anstatt „behoben“: Rendere die Stimme mit einer neuronalen TTS neu, master dann.

--naturalize fügt einen kleinen Raum, einen Atem-/Raumklangboden und etwas HF-Luft hinzu. Es entfernt den „trockenen, digital stillen“ Hinweis; es kann keine Prosodie erfinden und wird keine roboterhafte Quelle retten. Aktiviere es niemals standardmäßig für musikgeführte Inhalte.

Grenzen

  • Der Indikator „Musikbett“ benötigt einen Stamm; ohne diesen wird das Stimme/Musik-Verhältnis nicht gemessen.
  • Der Rauschboden ist nur aussagekräftig, wenn es echte leise Passagen gibt.
  • True Peak ist 4-fach überabgetastet; Rundfunkanstalten, die 8-fach benötigen, sollten mit ihrem eigenen Meter überprüfen.
  • Dies ist ein Auslieferungswerkzeug, kein kreativer Mix. Es wird keine schlechte Darbietung gut machen.

Verwandte Skills