Communitygithub.com

iamaanahmad/voiceover-tts

Erzeugen und zeitlich abstimmen von Sprachaufnahmen mit Text-to-Speech (ElevenLabs, OpenAI TTS, Kokoro, Piper) oder Vorbereiten einer aufgenommenen Stimme – Skriptvorbereitung, szenenweise Audiodateien, Tempo, Aussprache, Bereinigung und Lautstärke. Verwenden, wenn der Benutzer eine Sprachaufnahme, Erzählung, Synchronisation oder Anleitung zum Klonen von Stimmen benötigt.

Was ist voiceover-tts?

Diese Fähigkeit ermöglicht es, Voiceover-Inhalte für Videoproduktionen oder Präsentationen zu generieren und zeitlich abzustimmen. Sie unterstützt mehrere Text-to-Speech-Engines: ElevenLabs (Cloud, beste Natürlichkeit und Stimmenklonen), OpenAI TTS (einfach, konsistent), Kokoro (lokal, kostenlos, offline) und Piper (lokal, schnell, CPU-basiert). Zusätzlich kann eine echte Aufnahme vorbereitet und bereinigt werden. Die Fähigkeit führt durch die Skripterstellung (Schreiben von Zahlen, Einheiten und Akronymen, wie sie gesprochen werden), Erzeugung einer Audiodatei pro Szene (`audio/scene-01.mp3`), Messung des Sprechtempos (140–160 Wörter pro Minute) mit `ffprobe`, Bereinigung von Aufnahmen mit `ffmpeg` (Hochpassfilter, Rauschunterdrückung, Kompression, Lautheit) und Zusammenführung der Szenen mit kleinen Pausen. Ethische Richtlinien zum Stimmenklonen werden betont. Sie ist ideal für Entwickler, die ein automatisiertes Voiceover in ihre Projekte integrieren möchten, z. B. mit Claude Code, Cursor oder anderen KI-Agenten-Plattformen. Die Funktionsweise wird durch detaillierte Python- und Bash-Codebeispiele im SKILL.md dokumentiert.

Funktioniert mit~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/voiceover-tts

In Ihrer bevorzugten KI fragen

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

Dokumentation

Voiceover und TTS

Voiceover treibt die Zeitleiste an. Erzeuge es, bevor du die visuellen Elemente erstellst.

Wähle eine Engine

EngineOrtStärkeAchtung
ElevenLabsCloud-APIBeste Natürlichkeit, StimmenklonenKostenpflichtig; klone nur Stimmen, für die du eine Einwilligung hast
OpenAI TTSCloud-APIEinfach, konsistentBegrenzte Auswahl an Stimmen
KokoroLokalKostenlos, gute Qualität, offlineBenötigt Python-Setup
PiperLokalSchnell, läuft auf CPUWeniger ausdrucksstark
Aufgenommene echte StimmeMikrofonAuthentischste WirkungBenötigt Bereinigung

Halte API-Schlüssel in Umgebungsvariablen oder einer .env-Datei, die in .gitignore aufgeführt ist. Gib sie niemals aus oder committe sie.

Bereite das Skript für die Sprachausgabe vor

  • Schreibe Zahlen, Einheiten und Akronyme so, wie sie gesprochen werden: „zwanzig sechsundzwanzig“, „A P I“ wenn es buchstabiert werden soll, „Gigabyte“.
  • Füge Kommas für Atempausen ein; verwende einen Punkt für einen Stopp; vermeide Klammern.
  • Setze schwierige Namen in eine Ausspracheliste und teste sie zuerst in einem kurzen Beispiel.
  • Teile in eine Datei pro Szene (audio/szene-01.mp3). Szenenweise Dateien ermöglichen es, eine einzelne Zeile neu aufzunehmen und die Timing-Flexibilität zu bewahren.

Erzeugen (Beispiel, ElevenLabs REST)

import os, requests, pathlib

def tts(text: str, voice_id: str, out: pathlib.Path) -> None:
    r = requests.post(
        f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}",
        headers={"xi-api-key": os.environ["ELEVENLABS_API_KEY"], "Accept": "audio/mpeg"},
        json={"text": text, "model_id": "eleven_multilingual_v2",
              "voice_settings": {"stability": 0.5, "similarity_boost": 0.75}},
        timeout=120,
    )
    r.raise_for_status()
    out.write_bytes(r.content)

Modellnamen und Endpunkte ändern sich. Bestätige vor der Verwendung die aktuellen Dokumente des Anbieters.

Messen und Tempo

ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 audio/szene-01.mp3
  • Ziele auf 140 bis 160 Wörter pro Minute (Wörter / Sekunden * 60). Erzeuge mit einer leicht anderen Sprechweise neu oder kürze den Text, wenn eine Szene über 180 Wörter pro Minute liegt; es klingt dann gehetzt.
  • Dehne Sprache nicht um mehr als etwa 10 Prozent, da sie sonst synthetisch klingt. Schreibe stattdessen um.

Aufgenommene Stimme bereinigen

# Hochpass, sanfte Rauschunterdrückung, Kompression, Lautheit
ffmpeg -i roh.wav -af "hochpass=f=80,afftdn=nf=-25,acompressor=threshold=-18dB:ratio=3:attack=5:release=80,loudnorm=I=-16:TP=-1.5:LRA=11" -ar 48000 sauber.wav

Führende und nachfolgende Stille entfernen:

ffmpeg -i eingabe.wav -af "silenceremove=start_periods=1:start_threshold=-45dB,areverse,silenceremove=start_periods=1:start_threshold=-45dB,areverse" ausgabe.wav

Zusammenfügen

# Szenendateien mit 0,4 s Lücken zusammenfügen
python - <<'PY'
import subprocess, pathlib
dateien = sorted(pathlib.Path("audio").glob("szene-*.mp3"))
teile = []
for i, d in enumerate(dateien):
    teile += ["-i", str(d)]
n = len(dateien)
filt = "".join(f"[{i}:a]apad=pad_dur=0.4[a{i}];" for i in range(n)) + "".join(f"[a{i}]" for i in range(n)) + f"concat=n={n}:v=0:a=1[out]"
subprocess.run(["ffmpeg", "-y", *teile, "-filter_complex", filt, "-map", "[out]", "voiceover.mp3"], check=True)
PY

Anschließend mit Musik in audio-mixing mischen und mit captions-subtitles untertiteln.

Ethik und Rechte

  • Klone eine Stimme nur mit ausdrücklicher Erlaubnis des Sprechers.
  • Gib synthetische Stimmen an, wo Plattformregeln oder Gesetze dies verlangen.
  • Prüfe die Lizenz des TTS-Anbieters für die kommerzielle Nutzung.

Individual skills in this repo

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

iamaanahmad/captions-subtitles

Create, edit, translate and burn in captions and subtitles - transcribe speech with Whisper, write SRT/VTT/ASS files, style them, and hard-burn word-highlight captions for Shorts, Reels and TikTok. Use for any captioning, subtitle, transcript or accessibility request.

iamaanahmad/ffmpeg-essentials

Core FFmpeg and ffprobe recipes for trimming, joining, converting, resizing, compressing, speed changes, fades, audio extraction and GIF conversion. Use for any direct media transformation task, or when a video will not play, has odd dimensions, or is out of sync.

iamaanahmad/motion-design-craft

Motion design rules for programmatic and edited video - durations, easing, springs, staggering, read time for on-screen text, beat grids, transitions and visual hierarchy, plus the defaults that make a video look AI-generated. Use when animating scenes, choosing timings, or reviewing a video that feels off.

iamaanahmad/moviepy-python-video

Compose and edit video in pure Python with moviepy 2.x - overlay text, lower thirds and captions on footage, cut and join clips, add audio, build short single-file build.py videos without Node. Use when the user wants Python-based video editing or deterministic text over AI-generated video.

iamaanahmad/remotion-programmatic-video

Build videos as React code with Remotion - compositions, sequences, springs, interpolation, audio sync, data-driven props, studio preview and rendering to MP4. Use for explainers, product demos, release notes, data charts, branded templates, or any video that should be reproducible from code.

iamaanahmad/screen-recording-demos

Record clean product and web app demos - scripted browser recording with Playwright, cursor and zoom polish, speed ramps, trimming dead time and syncing to narration. Use when the user wants a walkthrough, tutorial, UI demo or release video of a web app, or a repeatable recording.

Verwandte Skills