CommunityCodierung & Entwicklunggithub.com

ethan-podcast-post

Verarbeitet selbst aufgenommene Podcasts oder Sprachaufnahmen: Rauschunterdrückung, Stille am Anfang und Ende entfernen, Stimm-Equalizer und Kompression, Linear-Lautheitsnormalisierung auf ca. -16 LUFS und Export als MP3; optional mit Intro/Outro-Musik und segmentierter Musik (Cue-Tabelle, Vorkontrolle vor dem Export); gibt Schnittvorschläge für lange Pausen und Nachsprache-Markierungen, schneidet nach bestätigtem Schnittplan. Wird verwendet, wenn der Nutzer „Podcast schneiden“, „Aufnahme bearbeiten“, „Podcast entstören“, „Lautheit normalisieren“, „Mastern“, „Cue-Tabelle erstellen“ oder „Nachsprachen ausschneiden“ sagt.

Was ist ethan-podcast-post?

Dieses Skill bearbeitet und mastered selbst aufgenommene Podcasts und Sprachaufnahmen direkt auf dem lokalen Rechner. Es führt eine Rauschunterdrückung durch (mittels RNNoise oder ffmpeg-eigenem afftdn), entfernt Stille an Anfang und Ende, wendet Stimm-EQ und Kompression an, normalisiert die Lautheit auf ca. -16 LUFS und exportiert als MP3. Es kann optionale Intro/Outro-Musik und segmentierte Hintergrundmusik per Cue-Tabelle hinzufügen und bietet Schnittvorschläge für lange Pausen und Nachsprache-Markierungen – der Schnitt erfolgt erst nach Benutzerbestätigung. Das Skill unterstützt macOS und Linux, erfordert ffmpeg und Python 3.9+ und arbeitet komplett lokal ohne Cloud-Anbindung oder zusätzliche Kosten.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ethanyang9512/ai-creator-studio/tree/main/skills/ethan-podcast-post

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

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

Dokumentation

Podcast-Schnitt und Mastering

Wandelt selbst aufgenommene Podcasts und Sprachaufnahmen in veröffentlichungsreife Endprodukte um: Rauschunterdrückung, Stille am Anfang und Ende entfernen, Stimm-Equalizer und Kompression, Lautheitsnormalisierung auf ca. -16 LUFS und Export als MP3. Bei Bedarf werden Intro/Outro-Musik und segmentierte Hintergrundmusik hinzugefügt sowie Schnittvorschläge erstellt (welche langen Passen können gestrafft werden, wo sind Nachsprache-Abschnitte), die nach Benutzerbestätigung geschnitten werden.

Die folgenden scripts/ und references/ befinden sich im selben Skill-Verzeichnis. Geben Sie bei der Ausführung den vollständigen Pfad an, z.B. bash <Skill-Verzeichnis>/scripts/edit_podcast.sh.

1. Vor dem Start: Dem Nutzer erklären

  • ffmpeg muss installiert sein (kostenloses Open-Source-Audiowerkzeug). Falls nicht vorhanden: macOS mit brew install ffmpeg, Linux mit dem Paketmanager (z.B. apt install ffmpeg). Die Skripte suchen in dieser Reihenfolge: Umgebungsvariable FFMPEG → ffmpeg im System-PATH → standard Installationsorte /opt/homebrew/bin, /usr/local/bin. Getestet mit Version 6.0 und 8.1.
  • Bash und Python 3.9+ werden benötigt, nur Standardbibliotheken, keine zusätzlichen Python-Pakete erforderlich.
  • Nur macOS und Linux: Auf macOS getestet; Linux sollte funktionieren; Windows erfordert WSL (nicht getestet).
  • Beim ersten Entrauschen wird ein ca. 300KB großes öffentliches Rauschunterdrückungsmodell (RNNoise) heruntergeladen und in ~/.cache/ethan-podcast-post/ gespeichert, nach dem Download wird SHA-256 geprüft. Kann nicht heruntergeladen werden oder die Prüfung schlägt fehl, wird automatisch auf ffmpegs eigenes afftdn umgestellt. Das Skript gibt an, welches Verfahren verwendet wird – teilen Sie dies dem Nutzer mit. Die Quelle des Modells finden Sie in references/third-party.md.
  • Komplette lokale Verarbeitung: Kein Upload, keine Kosten.
  • Nicht im Lieferumfang: Keine Erzeugung oder Klonen von Stimmen, keine Sprachsynthese, keine Transkription (SRT-Untertiteldateien müssen vom Nutzer bereitgestellt werden), keine Veröffentlichung auf Plattformen, keine Musik (Hintergrundmusik muss vom Nutzer bereitgestellt werden, mit entsprechender Nutzungserlaubnis).

2. Dateisicherheit (muss eingehalten werden)

  1. Originalaufnahme schreibgeschützt: Skripte lesen nur, ändern, verschieben oder löschen nicht.
  2. Ausgabe immer in ein neues Verzeichnis: Ein neues Verzeichnis wird neben der Aufnahme erstellt (z.B. Episode3_Nachbearbeitung/), nicht im selben Verzeichnis wie die Aufnahme oder Hintergrundmusik. Das Skript stoppt, wenn sich das Ausgabeverzeichnis im selben Ordner wie die Eingabedatei befindet.
  3. Keine Überschreibungen ohne Erlaubnis: Wenn im Ausgabeverzeichnis bereits eine fertige Datei, audio_raw.wav oder voice_master.wav existiert, stoppt das Skript. Zum Überschreiben muss der Nutzer zuerst informiert werden, welche Dateien überschrieben werden und dass die alten Dateien verloren gehen. Erst nach Zustimmung kann mit OVERWRITE=1 erneut gestartet werden. Gleiches gilt für Schnittvorschläge, Schnitte und Sprachbearbeitungsskripte: Stoppen bei vorhandenen Dateien, Zustimmung des Nutzers erforderlich, dann mit --overwrite fortsetzen.
  4. Bestätigung vor dem Löschen: Jede Löschung (z.B. Aufräumen von großen Dateien wie audio_raw.wav) muss dem Nutzer mit Angabe der Datei und dem Grund erklärt werden. Erst nach Zustimmung löschen. Temporäre Unterverzeichnisse im Ausgabeordner werden nur am Ende der Ausführung bereinigt.
  5. Was geschnitten wird, bestimmt der Nutzer: Schnittvorschläge sind nur eine Kandidatenliste; es wird erst geschnitten, wenn der Nutzer zugestimmt hat.

3. Arbeitsablauf

Führen Sie zuerst eine Umgebungsprüfung durch und teilen Sie dem Nutzer das Ergebnis mit:

bash <Skill-Verzeichnis>/scripts/edit_podcast.sh --check

Dies zeigt den gefundenen ffmpeg-Pfad, die Version, ob der 250Hz-Dynamik-EQ aktiviert ist (siehe Abschnitt 6) und ob das Rauschunterdrückungsmodell bereit ist. Sollte ffmpeg nicht gefunden werden, wird eine Installationsanleitung angezeigt. Installieren Sie es zuerst und fahren Sie dann fort.

Schritt 1: Erste Verarbeitung – Stimm-Master und Hörprobe

KEEP_MASTER=1 bash <Skill-Verzeichnis>/scripts/edit_podcast.sh <Audiodatei> <Ausgabeverzeichnis>/pass1 <Name>
  • Die Aufnahme kann wav, m4a, mp3, mp4 oder jedes andere von ffmpeg lesbare Format sein. Für Duo- oder Multi-Sprecher-Inhalte fügen Sie INTERVIEW_MODE=1 hinzu (stärkere Kompression, automatischer Lautstärkeausgleich zwischen Sprechern).
  • Verarbeitungsreihenfolge: Extraktion als 48kHz WAV → Qualitätsprüfung → Stille am Anfang und Ende entfernen (Pausen dazwischen bleiben unberührt) → Lippen-Click-Entfernung → 80Hz Hochpass → Rauschunterdrückung → 250Hz Dynamik-EQ → De-Esser → Kompression → 5kHz Anhebung → Linear Gain auf -16 LUFS → Limiter → MP3-Export → Lautheits-Nachmessung.
  • Ausgabe:
    • <Name>_final.mp3: Endprodukt ohne Musik (auch als Hörprobe);
    • voice_master.wav: Stimm-Master (bereits um Stille an Anfang/Ende bereinigt), dient als Grundlage für Transkription, Schnittvorschläge und Schnitte;
    • audio_raw.wav: WAV-Kopie der Originalaufnahme (wird nur bei erfolgreicher Verarbeitung ins Ausgabeverzeichnis geschrieben) – für spätere Wiederholungen, aber relativ groß.
  • Überprüfen Sie die Ausgabe auf folgende Punkte und teilen Sie sie dem Nutzer mit:
    • Hintere Lautstärke unter -80 dB: Aufnahme möglicherweise unterbrochen – bitte mit dem Nutzer klären;
    • Entrauschmethode: RNNoise oder afftdn;
    • Endgültige Lautheit sollte innerhalb von -16 LUFS ±1 liegen, True Peak nicht höher als -1.5 dBTP. Bei Abweichung geben Sie die Werte an den Nutzer weiter.
  • Bei zu leiser oder stummer Aufnahme bricht das Skript mit einer Fehlermeldung ab – es wird kein leeres Endprodukt erzeugt. Die Fehlermeldung enthält einen empfohlenen Wert für INPUT_GAIN (in dB, bereits auf das aktuelle INPUT_GAIN bezogen). Bestätigen Sie mit dem Nutzer, dass die Aufnahme tatsächlich Sprache enthält, erhöhen Sie die Lautstärke mit dem empfohlenen INPUT_GAIN und starten Sie erneut. Im Fehlerfall bleiben keine Dateien im Ausgabeverzeichnis zurück, sodass Sie dasselbe Verzeichnis wiederverwenden können. Empfehlen Sie dem Nutzer außerdem, die Eingangslautstärke bei zukünftigen Aufnahmen zu erhöhen.

Schritt 2: Schnittvorschläge (nur Kandidatenliste – keine Audiodateien verändern)

Die Transkription muss von voice_master.wav aus Schritt 1 erstellt werden (oder vom Endprodukt-MP3 ohne Musik aus Schritt 1 – beide haben die gleiche Zeitachse). Verwenden Sie keine Transkription der Originalaufnahme: Diese hat keine bereinigten Enden, die Zeiten passen nicht, und die gefundenen Positionen sind falsch.

Lange Pausen identifizieren:

python3 <Skill-Verzeichnis>/scripts/edit_cuts.py suggest <Ausgabeverzeichnis>/pass1/voice_master.wav \
    [--srt untertitel.srt] [--protect 15:00.0-15:03.0 ...]
  • Standardmäßig werden Pausen länger als 1,5 Sekunden als Kandidaten markiert, die auf 1,2 Sekunden gestrafft werden sollen (jeweils 0,5 Sekunden Puffer an beiden Enden, um den Raumklang zu erhalten).
  • Vom Nutzer bewusst gesetzte Pausen (z.B. Stille nach einem wichtigen Satz) werden mit --protect Start-Ende markiert (jeweils 0,5 Sekunden Puffer), sodass sie nicht zum Schnitt vorgeschlagen werden.
  • Wenn offensichtlich lange Pausen nicht gefunden werden, ist der Hintergrundgeräuschpegel zu hoch – reduzieren Sie --noise von Standard -45 auf -40 und wiederholen Sie den Vorgang.
  • Bei mehr als 15 Kandidaten pro 40 Minuten oder einer Gesamtlänge von über 60 Sekunden warnt das Skript vor zu strengen Parametern: Erhöhen Sie --min-pause und schneiden Sie nicht alle Kandidaten ungeprüft.

Identifizieren von Nachsprache-Abschnitten (erfordert Transkription):

python3 <Skill-Verzeichnis>/scripts/edit_cuts.py retakes <Ausgabeverzeichnis>/pass1/voice_master.wav --srt untertitel.srt [--phrase dein_passwort]
  • Konvention bei Aufnahmen: Fehler → Pause > 1 Sekunde → ruhiges Aussprechen des Nachsprache-Passworts → Pause > 1 Sekunde → Wiederholen ab Satzanfang.
  • Standard-Passwort ist „nochmal nochtmal“ (=„nochmal“ verdoppelt). Wenn Ihr Passwort anders lautet, verwenden Sie --phrase. Falls die Transkriptionssoftware das Passwort verzerrt, können Sie --phrase mehrfach verwenden, um verschiedene Schreibweisen abzudecken. Wählen Sie ein Passwort außerhalb des normalen Sprachgebrauchs – die doppelte Nennung reduziert Fehlerkennungen zusätzlich.
  • Das Skript sucht im Untertitel nach dem Passwort, findet den Start des Wiederholungssatzes und gleicht ihn mit dem vorhergehenden (fehlerhaften) Satz ab. Es gibt Schnittintervalle und eine Vertrauensstufe zurück (high / mid / low). Vertrauensstufe „low“ muss vom Nutzer probegehört werden.

Beide Befehle schreiben voice_master_suggested_cuts.tsv und voice_master_retake_cuts.tsv (bei vorhandenen Dateien wird nicht überschrieben, erst nach Zustimmung des Nutzers mit --overwrite). Präsentieren Sie die Kandidaten dem Nutzer einzeln (Zeit, vorheriger/nachfolgender Kontext, eingesparte Zeit). Nach Bestätigung durch den Nutzer kopieren Sie die relevanten Zeilen in eine neue cuts.tsv (Tabulator-getrennt: Start, Ende, Kommentar; Zeit im Format MM:SS.s).

Schritt 3: Ausschneiden

python3 <Skill-Verzeichnis>/scripts/edit_cuts.py apply <Ausgabeverzeichnis>/pass1/voice_master.wav --cuts cuts.tsv [--srt untertitel.srt]
  • Schnitt auf Sample-Ebene, 15 ms Equal-Power-Crossfade an den Schnittstellen. Ausgabe: voice_master_edited.wav (24 Bit) und voice_master_edited.edit_map.json (enthält Quelle und Positionen der beibehaltenen Abschnitte).
  • Bei Verwendung von --srt: Vollständig erhaltene Untertitel werden entsprechend verschoben; wird ein Untertitel durch den Schnitt halbiert, lehnt das Skript die Ausführung ab. Entfernen Sie --srt und führen Sie erneut aus – nach dem Schnitt muss der Nutzer eine neue Transkription der bearbeiteten Master-Datei erstellen.
  • Nach dem Schnitt: Bitten Sie den Nutzer, jeweils einige Sekunden vor und nach jeder Schnittstelle probezuhören: Kein Klicken, kein doppeltes Einatmen, kein Sprung im Klangbild.

Schritt 4 (optional): Zitate, Erinnerungen etc. mit leicht veränderter Klangfarbe

python3 <Skill-Verzeichnis>/scripts/voice_fx.py <master_nach_schnitt.wav> --fx fx.tsv
python3 <Skill-Verzeichnis>/scripts/voice_fx.py --list     # Fünf Presets anzeigen
  • Presets: quote (Briefe, fremde Texte), archive (alte Zeitungen, amtliche Texte), telephone (Telefonate nacherzählt), memory (Erinnerungen, Träume), radio (alter Radiosound, max. einmal pro Episode).
  • fx.tsv: Jede Zeile enthält: Preset, Start, Ende, Fade-in, Fade-out, Kommentar (Tabulator-getrennt; für Fade-In/Out „-" für Standardwert).
  • Nach der Bearbeitung: Länge bleibt auf Sample-Ebene gleich, Lautheit unverändert; Ausgabe: <Originalname>_fx.wav.

Schritt 5 (optional): Musik und Cue-Tabelle

Nur ausführen, wenn der Nutzer Hintergrundmusik bereitstellt. Zuerst Cue-Tabelle schreiben, dann Vorab-Prüfung durchführen. Die Cue-Tabelle wird im Ausgabeverzeichnis des zweiten Durchlaufs gespeichert; der Dateiname muss <Name>_cues.tsv lauten.

Cue-Tabelle: Tabulator-getrennt, 7 Spalten. Zeilen, die mit # beginnen, werden ignoriert. Ein - in einer Spalte bedeutet Standardwert. Die time-Spalte ist im Format MM:SS.s und bezieht sich auf die Zeitachse des Stimm-Masters. Die folgenden Zeiten sind Beispielwerte:

# type	time	src	dur	vol	fade_in	fade_out
stinger	02:00.0	-	3	-	-	-
break	12:00.0	-@20	8	0.5	2	2
bed	18:00.0	-@40	30	0.08	-	-
ending	40:00.0	-@90	-	-	-	-
TypBedeutungdurStandardlautstärke
stingerKurzer Musikakzent, über die Stimme gelegtStandard 6 Sekunden0.12
bed / postMusikbett unter der Stimme; wird automatisch leiser, wenn die Stimme einsetztPflichtfeld0.12
breakAn dieser Stelle die Stimme schneiden, ein Musikstück einfügen, nach Ende wieder zur Stimme zurück; verlängert die Enddatei um dur SekundenPflichtfeld0.5
endingEndmusik: während des Sprechens leise, nach dem Sprechen hoch, am Ende ausblendenSchreiben Sie -0.22
  • src: Schreiben Sie - für die aktuell eingebundene Hintergrundmusik; -@20 bedeutet, ab Sekunde 20 der Hintergrundmusik zu starten; alternativ kann ein vollständiger Pfad zu einer anderen Musikdatei angegeben werden, ebenfalls mit @Sekunde (ohne @ wird von Anfang an abgespielt).
  • Für stinger mit src = - und ohne @ wird standardmäßig ab Sekunde 60 der Hintergrundmusik gestartet; für andere Typen ohne @ beginnt die Wiedergabe von Anfang an.
  • Nach dem Schreiben der Tabelle zuerst eine Vorab-Prüfung durchführen. Bei ❌-Markierungen zuerst korrigieren:
python3 <Skill-Verzeichnis>/scripts/cues_lint.py <Name>_cues.tsv --master <master_nach_schnitt.wav> --bg <hintergrundmusik>

Es prüft Format, Zeitüberschreitungen, Vorhandensein von Quellen, Überlappungen und den gesamten Musikanteil (empfohlen nicht über 15%). Es gibt eine Konvertierungstabelle für „Master → Endprodukt“ für die Programmierung des Programms.

Schritt 6: Zweiter Durchlauf – Endprodukt erstellen

MASTER_WAV=<master_nach_schnitt.wav> bash <Skill-Verzeichnis>/scripts/edit_podcast.sh - [hintergrundmusik] <Ausgabeverzeichnis>/final <Name>
  • Der erste Parameter ist -. Wenn MASTER_WAV gesetzt ist, werden Extraktion, Rauschunterdrückung und Normalisierung übersprungen; stattdessen werden Cues angewendet, Musik gemischt und das Endprodukt exportiert.
  • Wenn Hintergrundmusik vorhanden ist und die Audiodatei länger als 80 Sekunden ist, werden automatisch Intro/Outro-Musik hinzugefügt: Intro 3 Sekunden vor der Stimme, Outro ca. 7 Sekunden nach dem Ende der Stimme, Musik wird bei Stimme automatisch leiser.
  • Wenn es keine Schnitte und keine Musik gibt, ist das Endprodukt aus Schritt 1 bereits das finale Produkt – dieser Schritt kann entfallen.

Schritt 7: Abnahme

Das Skript führt bereits eine abschließende Messung durch. Für eine unabhängige Messung (verwenden Sie den Pfad von ffmpeg, der mit --check angezeigt wird):

"<ffmpeg-pfad>" -hide_banner -nostats -i <endprodukt.mp3> -filter_complex ebur128=peak=true -f null - 2>&1 | tail -12
  • Kriterien: Integrated innerhalb von -16 LUFS ±1, True Peak nicht höher als -1.5 dBFS (dBTP).
  • Bitten Sie den Nutzer, mit Kopfhörern zu hören: Musik überlagert nicht die Stimme; Musik kehrt bei Pausen nicht abrupt zurück; jeder Schnittpunkt klingt natürlich; das Ende ist nicht abgeschnitten; bewusst gesetzte Pausen sind noch vorhanden.
  • Bei Abnahme dem Nutzer mitteilen: Position des Endprodukts, Entrauschmethode, tatsächliche gemessene Lautstärke und True Peak, welche Stellen geschnitten wurden. Nicht erfüllte Kriterien ehrlich benennen.

4. Schnittprinzipien

  • Nur Unfälle schneiden, nicht das Atmen: Versprecher, Ablesen, Nachsprache-Fehlversuche schneiden; Atmen, „Ähm“ beim Nachdenken, zögerliche Pausen zwischen Sätzen, bewusst gesetzte Stille nicht schneiden. Im Zweifelsfall belassen.
  • Pausen unter 0,8 Sekunden werden nicht angerührt; Pausen zwischen Sätzen von 0,8–1,5 Sekunden bleiben standardmäßig erhalten; längere Pausen nur schneiden, wenn es Hinweise auf Stolpern oder Abgelenktsein gibt.
  • Schnitt an natürlichen Atempunkten setzen, keine Wortanfänge oder -enden abschneiden; Atmen entweder vollständig lassen oder vollständig entfernen.
  • Hintergrundmusik leiser als die Stimme; Titel mit Gesang oder starkem Mitteltonbereich (1–3 kHz) vermeiden; melodische Musikstücke bevorzugt zwischen Abschnitten (break) platzieren, nicht unter der Stimme; Gesamtmusikanteil normalerweise nicht über 15%.
  • Detaillierte Vorgehensweise in references/editing-style-guide.md (Stil und Verpackung), references/editing-essentials.md (Schnittausführung und Abnahme) und references/audio-glossary.md (Fachbegriffe).

5. Umgebungsvariablen (alle optional)

VariableStandardBedeutung
FFMPEGAutomatische Sucheffmpeg-Pfad angeben
DENOISErnnoisernnoise / afftdn / off
RNNOISE_MODEL~/.cache/ethan-podcast-post/bd.rnnnPfad zum Rauschunterdrückungsmodell; bei vorhandenem Modell kann dies direkt angegeben werden
RNNOISE_URLÖffentliches Modell auf GitHubKann bei Netzwerkproblemen durch eine Spiegeladresse ersetzt werden (SHA-256-Prüfung bleibt erhalten)
INPUT_GAIN0Gesamtverstärkung (oder -absenkung) der Aufnahme in dB vor der Verarbeitung; bei zu leiser Aufnahme den empfohlenen Wert aus der Fehlermeldung eintragen
TRIM_THRESHOLD-50Schwellwert (dB) zum Entfernen von Stille an Anfang und Ende; falls leise Passagen an den Enden abgeschnitten werden, verringern, z.B. -60
INTERVIEW_MODE01 = Duo- oder Multi-Sprecher-Modus
KEEP_MASTER01 = Stimm-Master voice_master.wav behalten
MASTER_WAVLeerStimm-Master für den zweiten Durchlauf
MUSIC_VOLUME0.12Lautstärkeverhältnis der Hintergrundmusik
INTRO_DURATION40Zeitfenster für Intro/Outro in Sekunden; wird nicht angewendet, wenn die Audiodatei kürzer als das Doppelte dieser Zeit ist
PREROLL / TAIL3 / 7Sekunden vor der Stimme für Intro / Sekunden nach der Stimme für Outro
OUTRO_SEEKLeerSekunde der Musikdatei, ab der das Outro beginnt
MP3_BITRATE160kBitrate des Endprodukts
OVERWRITE01 = Überschreiben vorhandener Dateien erlauben (zuerst Zustimmung des Nutzers einholen)

6. Häufige Probleme

  • ffmpeg nicht gefunden: Bitte den Nutzer um Installation (macOS: brew install ffmpeg, Linux: Paketmanager) oder mit FFMPEG=/vollständiger/Pfad/ffmpeg angeben.
  • ffmpeg-Version: Das Skript liest die Versionsnummer. Die Parameter für den 250Hz-Dynamik-EQ unterscheiden sich zwischen ffmpeg 6 und 8; beide Varianten wurden mit Sinussignalen kalibriert und liefern gleiche Ergebnisse. Bei nicht verifizierten Versionen (z.B. 7.x) wird diese Stufe übersprungen und eine Meldung ausgegeben; die restliche Verarbeitung läuft normal. Die Parameter zum Entfernen von Stille an Anfang/Ende sind ebenfalls an das neuere Verhalten angepasst und schneiden bei 6.x und 8.x gleich.
  • Fehler „Nach dem Entfernen von Stille an Anfang/Ende ist fast nichts übrig“ oder „Nach Verarbeitung keine Lautheit messbar“: Aufnahme zu leise oder stumm. Bestätigen Sie, dass gesprochen wird, und verwenden Sie den empfohlenen INPUT_GAIN-Wert aus der Fehlermeldung (bei Lautheit unter -70 LUFS kann nicht gemessen werden, nur Anpassung des Trim-Schwellwerts reicht nicht). Wenn wirklich keine Sprache vorhanden ist, bricht das Skript wiederholt ab und erzeugt kein leeres Endprodukt.
  • Entrauschung mit afftdn: Modell konnte nicht heruntergeladen werden. Setzen Sie RNNOISE_URL auf eine Spiegeladresse oder geben Sie mit RNNOISE_MODEL den Pfad zu einer vorhandenen Modelldatei an. Wiederholen Sie den Vorgang (vor Überschreiben vorhandener Dateien Zustimmung des Nutzers einholen).
  • Lautstärke am Ende unter -80 dB: Aufnahme wahrscheinlich unterbrochen – zuerst mit dem Nutzer klären, nicht als Schnittproblem behandeln.
  • Keine Nachsprache-Abschnitte gefunden: Stellen Sie sicher, dass die Transkription von voice_master.wav stammt, und überprüfen Sie, ob das Passwort in der Transkription anders geschrieben wurde. Fügen Sie diese Schreibweise mit --phrase hinzu.
  • Jeden Befehl im Detail sehen: bash -x <Skill-Verzeichnis>/scripts/edit_podcast.sh ....
  • In zsh ffmpeg-Filter-Parameter selbst zusammenbauen: Bei Variablen gefolgt von einem Doppelpunkt ${VAR}:... schreiben, da zsh sonst $VAR:a und $VAR:r als Modifikatoren interpretiert und die Parameter stillschweigend ändert.

Lizenz: Code MIT, Dokumentation CC BY 4.0.

Verwandte Skills