Communitygithub.com

iamjeffia/estudio-ia

Sounddesign und Videomischung im Studio. Immer dann einsetzen, wenn Sie einem Video oder einer Animation Sound verleihen möchten (Effekte für jedes ein- oder ausgehende Element, Musik, Erzählung, Endmix, Sound in der Vorschau), die Effektbibliothek erweitern oder anpassen wollen, Beats und Drop eines Songs messen, um im Takt zu schneiden, die Stimme von der Musik trennen oder prüfen möchten, ob der Szenen-Sound vor der Auslieferung zu laut ist. Gilt für Videos, die in After Effects, HyperFrames, Remotion oder von Hand erstellt wurden.

Was ist estudio-ia?

Diese Skill automatisiert den gesamten Sounddesign-Workflow für Videoproduktionen. Sie erzeugt synchronisierte Soundeffekte für jedes sichtbare Ereignis im Video, mischt Musik unter die Erzählung und liefert einen professionellen Mix mit detailliertem Report. Die Skill unterstützt plattformübergreifend After Effects, HyperFrames und Remotion. Sie arbeitet mit einer zentralen Bibliothek und erlaubt die Feinabstimmung über ein Skript ('som.py'), das Effekte punktgenau auf den Frame setzt, die Lautstärke nach LUFS-Normen regelt und die Audioqualität sicherstellt. Zusätzliche Tools wie 'batida.py' und 'separar.py' helfen beim Beat-Mapping und der Stimmseparation. Die Skill stellt sicher, dass der Sound nahtlos mit dem Video integriert wird, ohne dass ein vollständiger Render-Durchlauf nötig ist.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/iamjeffia/estudio-ia/tree/HEAD/.agents/skills/som-do-video

In Ihrer bevorzugten KI fragen

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

Dokumentation

Ton zum Video

Datum: 2026-10-22 · Typ: Skill · Status: gültig

Zusammenfassung: Der Ton eines Videos entsteht aus einer Liste von Ereignissen (eines pro Element, das erscheint, verschwindet oder auf dem Bildschirm auftrifft) und einem Befehl, som.py, der jeden Effekt mit seiner Spitze auf den richtigen Frame setzt, die Musik unter die Stimme legt und den Mix mit einem Bericht ausgibt. Der Ton wartet nicht auf den Render: Sobald die Zeit der Animation festliegt, kann er bereits erstellt werden. Die Zahlen des Mix haben nur einen Eigentümer, 06-methode/regeln.md; diese Skill bringt die Methode, die Befehle und die Haupttabelle.

Wann verwenden

  • Jedes Video mit Bewegung, Benutzeroberfläche, Tutorial, Anzeige oder Video nur mit Musik, das synchronisierte Effekte benötigt.
  • Video mit Erzählung: trockene Stimme vorne, Musik darunter, dezente Effekte.
  • Video mit Menschen oder Orten, das sich „stumm“ anfühlt: Szenen-Sound (Atmosphäre und Foley). Siehe referenzen/szenen-sound.md.
  • Um einen Song zu bearbeiten: Beats und Drop messen (beat.py) oder die Stimme trennen (trennen.py).

Die Methode

  1. Ein Sound für jede sichtbare Aktion, und der Sound beschreibt die Aktion. Karte, die hereinkommt, macht Pop, Button macht Klick, Bildwechsel macht Whoosh, Stempel schlägt auf, Zahl rollt. Die Dichte richtet sich nach der Aktion, nicht nach dem Wort: maximal zwei Effekte, die gleichzeitig unter der Stimme erklingen.
  2. Nur Sound, der durch das Bild motiviert wird. Whoosh bei statischem Schnitt, Uhr ohne Uhr im Bild und Riser ohne steigendes Element lösen den Sound vom Video. Vor dem Mischen sehen Sie sich das Video an und notieren, was sich bewegt, wann und mit welchem Material.
  3. Die Spitze fällt auf den Frame des Ereignisses. Klick, Pop, Stempel und Impact: die Spitze auf dem Frame, in dem das Element auftrifft. Whoosh: die Spitze in der Mitte der Geste (~0,2 s nach Beginn; die Standardkarte macht das bereits). Riser: endet trocken am Drop oder am Schnitt.
  4. Tonale Elemente nur bei Hype, Übergängen und Überraschungen. Schlag im Ton beim Impact, beim Stempel und beim Logo; kurzer Pad beim großen Übergang; Glocke bei der Enthüllung. Niemals bei Klick, Pop oder Taste, die werden zu „Musikspielerei“ und ermüden. Übergeben Sie --ton (z. B. Am) nur, wenn die Musik eine bekannte Tonart hat.
  5. Musik für Momente, nicht als Teppich. Sanfter Anfang; Verlangsamung vor dem Drop; Atempause; Höhepunkt auf der Bassdrum. Bei Erzählung bleibt die Musik deutlich unter der Stimme und steigt in den Atempausen und sprachfreien Abschnitten.
  6. Atempause vor dem Drop. Das Instrumental fällt ~0,3–0,5 s trocken auf dem letzten Beat vor dem Drop (--drop T macht das), und das Schlüsselwort oder die größte Bildänderung kommt auf den ersten Frame des Drops. Messen Sie den Drop mit beat.py, nicht nach Augenmaß.
  7. Schichten nur an den Höhepunkten. 2–3 Klänge zusammen beim Drop, beim Logo und beim Abschluss; ansonsten ein Klang pro Aktion. Variieren Sie die Tonhöhe, wenn sich derselbe Klang wiederholt (die Map rotiert durch die Variationen der Kategorie).
  8. Trockene Stimme. Erzählung ohne Hall oder Echo.
  9. Hören Sie sich die einzelnen Schichten getrennt an. som.py speichert hoeren/stimme.wav, musik.wav, effekte.wav und tonale.wav. Die Synchronität wird im Effekt-Stamm überprüft, niemals im Mix.

Hauptzahlen

Eigentümer: 06-methode/regeln.md. Wenn dort eine andere Zahl steht, gilt die dortige. Der Mixer wendet diese Werte bereits automatisch an.

WasWert
Master mit Stimme oder Musik−14 LUFS integriert, True-Peak ≤ −1 dBTP (Limiter 4×)
Musik unter der Stimme~15 dB leiser bei Sprache (der Bericht misst; akzeptiert 12–18)
Mix ohne Stimme mit echter MusikSpur auf −19 LUFS gebracht vor den Effekten; Effekte ×2,2; Limiter; Master −14
Reiner Szenen-Sound−25 LUFS integriert (max. −24), kurzfristig ≤ −20, momentan ≤ −16, Peak ≤ −3. Niemals auf −14 normalisieren
Szenen-Sound mit StimmeSzenen-Sound-Stamm ≥ 15 LU leiser als die Stimme
EffektbibliothekKurze −20 LUFS momentaner Peak, Pads −24, Peak ≤ −3 dBTP; Position at = ereignis − peak_ms/1000
SynchronitätMedian ≤ 25 ms im Effekt-Stamm
Beatsbeat_this, File2Beats(checkpoint_path="final0"); Schnitt bei ≤ 2 Frames vom Beat

Schritt für Schritt

Alle Befehle werden aus dem Stammverzeichnis des Studios ausgeführt.

  1. Bibliothek bereit? Wenn 05-bibliothek/ton/sfx/katalog.json nicht existiert: uv run scripts/sound/sfx_synthetisieren.py. Aufgenommene Klänge: uv run scripts/sound/normieren.py <pack-ordner> (Details in 05-bibliothek/ton/README.md).
  2. Ereignisse. Exportieren Sie aus der Animations-Engine eine ereignisse.json in den Ordner audio/ des Projekts. Format, akzeptierte Typen und Export aus After Effects, HyperFrames und Remotion: referenzen/ereignisse.md.
  3. Musik mit Beat? uv run scripts/sound/beat.py musik.mp3 --fps 30 liefert BPM, starke Beats und wahrscheinlichen Drop. Animieren Sie die Schnitte in diesem Raster.
  4. Benötigen Sie die Stimme oder das Instrumental des Songs? uv run scripts/sound/trennen.py musik.mp3 (Stimme + Instrumental) oder --modus 6 (sechs Stems).
  5. Mix:
    uv run scripts/sound/sound.py --ereignisse 04-projekte/<video>/audio/ereignisse.json \
      --stimme 04-projekte/<video>/audio/stimme.wav --musik 04-projekte/<video>/audio/musik.wav \
      --video 04-projekte/<video>/render/vorschau.mp4 --drop 12.4
    
    Ausgabe: mix.wav, hoeren/*.wav, bericht-sound.json und vorschau-sound.mp4 (das Bild wird kopiert; nur der Ton ändert sich).
  6. Lesen Sie den Bericht und korrigieren Sie, bis keine Warnung mehr erscheint. „Ereignisse ohne Klang“ = Typ, den die Karte nicht kennt: Ersetzen Sie den Typ durch einen bekannten, setzen Sie "sound": "kategorie" im Ereignis oder schreiben Sie eine --karte (unten). LUFS, Peak und „Musik unter der Stimme“ außerhalb des Ziels werden ebenfalls angezeigt.
  7. Szenen-Sound? uv run scripts/sound/szenen_sound_pruefen.py <nur szenen-mix> oder ... hoeren/effekte.wav --stimme hoeren/stimme.wav. Nicht bestanden geht nicht zur Auslieferung.
  8. Hören. Die Vorschau mit Ton geht an den Studioinhaber zur Freigabe. Im endgültigen Video führen Sie denselben Befehl mit --video render/final.mp4 aus: Es ist nur ein Remux, ohne erneutes Rendern.

Projekteigene Sounds (--karte)

Eine .py-Datei mit KARTE = {typ: funktion(M, e)} überschreibt die Standardkarte nur für die von Ihnen aufgeführten Typen:

# 04-projekte/<video>/audio/karte.py
KARTE = {
    "logo": lambda M, e: (M.lege("logo", e["t"], -11), M.lege("impact", e["t"], -16), M.schlag(e["t"], -20)),
    "muenze": lambda M, e: M.lege("erfolg/erfolg-2", e["t"], -14, st=3),   # st = Halbtöne höher
}

Funktionen des Mixers, die in der Karte verwendet werden können: M.lege(sound, t, gain_db, pan, ausrichtung="peak"|"start"|"ende", st=halbtöne, ende=dauer, fade=s, raum=True), M.tonal(t, lufs), M.schlag(t, lufs), M.textur(t0, t1, lufs), M.riser(t_peak). sound akzeptiert eine Kategorie ("whoosh", rotiert durch die Variationen), eine Datei aus der Bibliothek ("whoosh/whoosh-2") oder einen Pfad.

Befehle

SkriptWofür
uv run scripts/sound/sound.py --ereignisse E.json [--stimme V] [--musik M] [--video P.mp4] [--ton Am] [--drop T] [--karte karte.py]den kompletten Mix, den Bericht und den Ton auf dem Video
uv run scripts/sound/sfx_synthetisieren.py [--sample probe.wav]generiert die initiale synthetisierte Bibliothek
uv run scripts/sound/normieren.py ORDNER [--kategorie X] [--pad] [--ziel D]bringt ein Pack auf Standard und aktualisiert den Katalog
uv run scripts/sound/szenen_sound_pruefen.py MIX.wav [--stimme STIMME.wav]weist zu lauten Szenen-Sound zurück (Exit-Code 1)
uv run scripts/sound/beat.py MUSIK [--fps 30] [--json raster.json] [--video render.mp4]Beats, starke Beats, BPM und Drop (beat_this)
uv run scripts/sound/trennen.py MUSIK [--modus stimme|6] [--ausgabe ORDNER]Stimme + Instrumental (MelBand Big Beta 4) oder 6 Stems (BS-RoFormer SW)

Weitere Optionen von sound.py: --stimme-ein, --musik-ein, --musik-von (Abschnitte ausrichten), --dauer, --impact T0 T1 (Musik auf Stimmniveau anheben), --lufs, --peak, --fx -10 (Effekte in LUFS relativ zur Stimme), --ausgabe.

beat.py und trennen.py verwenden KI und benötigen das Extra: uv sync --extra cpu (oder --extra gpu mit NVIDIA-Karte). Die Modelle laden sich beim ersten Gebrauch selbst herunter (beat_this ~80 MB; jedes Trennungsmodell ~300–700 MB, gespeichert in ~/.cache/estudio-ia/). Ohne das Extra stoppen beide mit der Installationsanweisung.

Häufige Fehler

SymptomWahrscheinliche UrsacheWas tun
Effekte „zu laut“ in einem Szenen-VideoSzenen-Sound auf −14 normalisiertsound.py ohne Stimme und Musik zielt bereits auf −25; mit szenen_sound_pruefen.py prüfen
Effekte verschwinden unter der Musik in einem Video ohne StimmeSpur gemastert (−8 bis −11 LUFS)Der Mixer nivelliert die Spur auf −19 und hebt die Effekte um ×2,2; falls immer noch, vol höher im Ereignis
Klang „zu spät“ beim WhooshEreignis am Ende der Geste markiertmarkieren Sie den Anfang der Geste; die Karte setzt den Peak 0,2 s später
Gleicher wiederholter Klang klingt roboterhaftKategorie mit nur einer Variationnivellieren Sie mehr Klänge in dieser Kategorie oder verwenden Sie einen anderen st in der --karte
Bericht: „Kategorien vertauscht“Die Bibliothek hat die Kategorie nichtführen Sie sfx_synthetisieren.py aus oder nivellieren Sie ein Pack mit dieser Kategorie

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Verwandte Skills