Communitygithub.com

babysor/MockingBird

Wandeln Sie Text in Sprache um mit Kokoro oder Noiz, einschließlich einfacher und zeitlich abgestimmter Modi.

Was ist MockingBird?

Diese Fähigkeit wandelt Text in Sprachaudio um und unterstützt zwei Backends: Kokoro (lokal) und Noiz (Cloud). Sie bietet zwei Modi – einen einfachen Modus zur direkten Text-zu-Sprache-Umwandlung und einen zeitlich abgestimmten Modus, der SRT-Untertitel mit präzisen Zeitangaben für jede Passage verwendet. Dies ist ideal für Dubbing, Videosprache und Audiobucherstellung. Benutzer können Stimmen pro Segment steuern, Sprachklonung mit Referenzaudio durchführen (nur Noiz) und Emotionen oder die genaue Dauer jedes Segments anpassen. Die Fähigkeit wird über Bash-Skripte im Verzeichnis `skills/speak/scripts/` ausgelöst und erfordert `ffmpeg` für den zeitlich abgestimmten Modus. Sie eignet sich besonders für Entwickler, die mit KI-Agenten wie Claude Code oder Cursor arbeiten und automatisierte Audioproduktion benötigen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/babysor/MockingBird/tree/HEAD/skills/speak

In Ihrer bevorzugten KI fragen

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

Dokumentation

speak

Konvertieren Sie jeden Text in Sprachaudio. Unterstützt zwei Backends (Kokoro lokal, Noiz Cloud), zwei Modi (einfach oder zeitlich genau) und Stimmensteuerung pro Segment.

Auslöser

  • Text zu Sprache / sprechen / sagen / TTS
  • Stimme klonen / synchronisieren
  • EPUB zu Audio / SRT zu Audio / in Audio konvertieren

Einfacher Modus — Text zu Audio

# Kokoro (automatisch erkannt, wenn installiert)
bash skills/speak/scripts/tts.sh speak -t "Hello world" -v af_sarah -o hello.wav
bash skills/speak/scripts/tts.sh speak -f article.txt -v zf_xiaoni --lang cmn -o out.mp3 --format mp3

# Noiz (automatisch erkannt, wenn NOIZ_API_KEY gesetzt ist, oder erzwingen mit --backend noiz)
# Wenn --voice-id weggelassen wird, gibt das Skript 5 verfügbare integrierte Stimmen aus und beendet sich.
# Wählen Sie eine aus der Ausgabe und führen Sie den Befehl erneut aus mit --voice-id <id>.
bash skills/speak/scripts/tts.sh speak -f input.txt --voice-id voice_abc --auto-emotion --emo '{"Joy":0.5}' -o out.wav

# Noiz: optional --duration (Float, Sekunden, Bereich (0, 36]) für Ziellänge des Audios
bash skills/speak/scripts/tts.sh speak -t "Short line" --voice-id voice_abc --duration 3.5 -o out.wav

# Stimme klonen (nur Noiz — keine voice-id erforderlich, verwendet Referenzaudio)
# Verwenden Sie Ihr eigenes Referenzaudio: lokaler Dateipfad oder URL (nur bei Noiz).
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio ./ref.wav -o clone.wav
bash skills/speak/scripts/tts.sh speak -t "Hello" --ref-audio https://example.com/my_voice.wav -o clone.wav

Zeitlicher Modus — SRT zu zeitlich abgestimmtem Audio

Für präzise zeitliche Steuerung pro Segment (Synchronisation, Untertitel, Videosprache).

Schritt 1: SRT erstellen oder besorgen

Falls der Benutzer keine SRT hat, aus Text generieren:

bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt
bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt --cps 15 --gap 500

--cps = Zeichen pro Sekunde (Standard 4, gut für Chinesisch; ~15 für Englisch). Der Agent kann SRT auch manuell schreiben.

Schritt 2: Stimmenzuordnung erstellen

JSON-Datei zur Steuerung von Standard- und segmentweiser Stimmeinstellung. segments Schlüssel unterstützen einzelne Indizes "3" oder Bereiche "5-8".

Kokoro Stimmenzuordnung:

{
  "default": { "voice": "zf_xiaoni", "lang": "cmn" },
  "segments": {
    "1": { "voice": "zm_yunxi" },
    "5-8": { "voice": "af_sarah", "lang": "en-us", "speed": 0.9 }
  }
}

Noiz Stimmenzuordnung (fügt emo, reference_audio Unterstützung hinzu). reference_audio kann ein lokaler Pfad oder eine URL sein (eigenes Audio des Benutzers; nur Noiz):

{
  "default": { "voice_id": "voice_123", "target_lang": "zh" },
  "segments": {
    "1": { "voice_id": "voice_host", "emo": { "Joy": 0.6 } },
    "2-4": { "reference_audio": "./refs/guest.wav" }
  }
}

Dynamisches Referenz-Audio-Slicing: Wenn Sie ein Video übersetzen oder synchronisieren und möchten, dass jeder Satz automatisch das Audio aus dem Originalvideo zum exakt gleichen Zeitstempel als Referenzaudio verwendet, verwenden Sie das Argument --ref-audio-track anstatt reference_audio in der Zuordnung zu setzen:

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --ref-audio-track original_video.mp4 -o output.wav

Siehe examples/ für vollständige Beispiele.

Schritt 3: Rendern

bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json -o output.wav
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --backend noiz --auto-emotion -o output.wav

Wann wählt man was

BedarfEmpfohlen
Einfach Text vorlesen, ohne SchnickschnackKokoro (Standard)
EPUB/PDF Hörbuch mit KapitelnKokoro (native Unterstützung)
Stimmenmischung ("v1:60,v2:40")Kokoro
Stimme klonen aus ReferenzaudioNoiz
Emotionssteuerung (emo Parameter)Noiz
Exakte serverseitige Dauer pro SegmentNoiz

Wenn der Benutzer Emotionssteuerung + Sprachklonung + präzise Dauer zusammen benötigt, ist Noiz das einzige Backend, das alle drei unterstützt.

Anforderungen

  • ffmpeg im PATH (zeitlicher Modus)
  • Noiz: Holen Sie Ihren API-Schlüssel unter developers.noiz.ai, führen Sie dann bash skills/speak/scripts/tts.sh config --set-api-key YOUR_KEY aus
  • Kokoro: Falls bereits installiert, übergeben Sie --backend kokoro, um das lokale Backend zu verwenden

Für Backend-Details und vollständige Argumentreferenz siehe reference.md.

Verwandte Skills