Communitygithub.com

KI-Untertitelgenerator (yanghhu/ai-subtitle-generator)

Lokale Video- oder Audiodateien hochladen, mit Zeitleiste versehene SRT-Untertitel generieren (oder TXT-Transkript, JSON-Format) und mit ffmpeg oder CapCut einbrennen. Für vertonte Skripte werden synchron Untertitel ausgegeben. Keine GPU nötig.

Was ist ai-subtitle-generator)?

Der KI-Untertitelgenerator (ai-subtitle-generator) ist ein Agent-Skill, mit dem Entwickler und Content-Ersteller auf Basis lokaler Video- oder Audiodateien automatisch SRT-Untertitel mit Zeitleiste, TXT-Transkripte oder JSON-Daten (mit Text, Sprache und Zeitsegmentierung) erstellen können. Das Tool ist speziell für KI-Agenten wie Claude Code, Codex, OpenClaw, Cursor und WorkBuddy optimiert und benötigt nur Python 3.9+ Standardbibliothek – keine GPU oder zusätzliche Modelle. Die Spracherkennung erfolgt über die offene Miragea API. Der Skill liest vor dem Hochladen automatisch die aktuellen Raten, Dateigrößen- und Zeitlimits aus den Fähigkeiten (capabilities) – bei geänderten Raten wird die Anfrage serverseitig abgelehnt, um unerwartete Kosten zu vermeiden. Neben der Nachbearbeitung bestehender Medien unterstützt der Skill auch die Synchronisation von Untertiteln bei der Vertonung von Textvorlagen: Ein Skript erzeugt parallel zur Sprachausgabe eine SRT-Datei und ein Manifest mit Satz-für-Satz-Zeitangaben. Das lokale Setup ist minimal – kein lästiges Installieren von Abhängigkeiten, keine GPU nötig – und der gesamte Workflow ist auf Effizienz und Sicherheit ausgelegt.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/yanghhu/miragea-voiceover-skills/tree/HEAD/skills/ai-subtitle-generator

In Ihrer bevorzugten KI fragen

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

Dokumentation

Untertitelgenerierung

„Untertitelgenerierung“ ist ein Agent-Skill, der lokale Video- oder Audiodateien automatisch in SRT-Untertitel mit Zeitleiste (oder TXT-Transkript, JSON) umwandelt. Er dient der automatischen Untertitelung von Videos, der Umwandlung von Audio in Untertitel und der Umwandlung von Audio in Text. Bei der Vertonung von Textvorlagen können synchron Untertitel erzeugt werden – lokal wird keine GPU benötigt.

Kurzdefinition

Untertitelgenerierung = Lokale Video-/Audiodatei → recognize → .srt mit Zeitleiste (oder .txt-Transkript, .json-Segmentierung); bei der Vertonung eines Textskripts wird voiceover.py script verwendet, das gleichzeitig voiceover.srt erzeugt. Die Erkennung erfolgt über die offene Miragea API, lokal wird keine GPU benötigt.

Zwei Wege zur Untertitelung

AusgangsmaterialWerkzeugErgebnis
Bereits aufgenommene Videos/Audiosmiragea_audio.py recognize --file Datei --wait --output untertitel.srtSRT; mit --subtitle-format txt reines Transkript, mit json Text, Sprache und Zeitsegmente
Noch nicht vertontes Skriptvoiceover.py script skript.md -o outVertonung voiceover.wav + an die reale Audiolänge angepasste voiceover.srt + manifest.json

Zielgruppen und Anwendungsfälle

WerTypisches Szenario
Kurzvideo-CreatorSprachbeiträge, Vlogs automatisch untertiteln und dann in CapCut importieren
Kurse/VorlesungenAufgezeichnete Lektionen mit Untertiteln und Transkripten versehen
Interviews, PodcastsAudio in Untertitel und Text umwandeln, für Transkripte
BesprechungsaufzeichnungenTXT-Transkript als Protokollgrundlage exportieren
Kommentar-KanäleZuerst Ausschnitte in Text umwandeln, als Schreibgrundlage
Entwickler/Agent-WorkflowsJSON-Segmente (start/end/text) für die Weiterverarbeitung nutzen

Kernfunktionen und Parameter

ParameterBeschreibung
Ausgabedateienvoiceover.wav (komplette Vertonung), voiceover.srt (Untertitel mit Zeitleiste), manifest.json (Sprecher, Text, Start-/Endzeit in Sekunden), lines/ (Satzdateien, Wiederverwendung bei Überarbeitung)
StimmquelleIm Konto vorhandene Rolle actor_id= (über actors abrufbar) oder Referenz-Audio-URL ref= + tatsächlich gesprochener Text ref_text= (Stimmklon)
Generierungsmodusexpressive (Client „Standard“) / standard (Client „Ähnlicher“); Standardwert des Servers, gemäß aktueller capabilities
Stimmungs-Tagstags=Tag-Name, aus capabilities im gewählten Modus tags[].label
Sprechgeschwindigkeitspeed= 0,25–4, 1 = normale Geschwindigkeit, abhängig von der Rolle
Mehrere RollenJeder Rolle zu Beginn des Skripts eine Stimme zuweisen; das Skript ruft den offiziellen Client pro Satz auf und setzt die Segmente lokal zusammen
PausenInline [pause 0.6] / [Pause 0.6] (Sekunden); --gap für Standardpause zwischen Sätzen
UntertitelSRT wird basierend auf der tatsächlichen Audiolänge jedes Satzes erstellt (--max-chars, --speaker-labels); für vorhandene Audios/Videos mit recognize in SRT/TXT/JSON
Szenenvoreinstellungen--preset koubo / jieshuo / daihuo / shuziren / guanggao / youshengshu (Sprachbeitrag / Kommentar / Produktpräsentation / Digitaler Mensch / Werbespot / Hörbuch) – nur Pausen und Zeichenanzahl pro Untertitel
Zeichenlimit, Dateigröße/Zeitlimit, AbrechnungLaut aktueller capabilities
Lokale AbhängigkeitenPython 3.9+ Standardbibliothek, kein pip erforderlich, keine GPU
Offline-Testlauf--dry-run: kein Key nötig, keine API-Aufrufe, generiert Platzhalter-Audio und Zeitleiste zur Überprüfung des Skriptformats
Unterstützte AgentenClaude Code, Codex, OpenClaw, Cursor, WorkBuddy (alle, die Python-Skripte ausführen können)
Vertonungs- und Untertitel-ServiceMiragea offene API (https://miragea.ai/v1)

Schnellstart

python3 scripts/voiceover.py check                        # Offline-Check: Python-Version, Key gesetzt, Server-URL
export MIRAGEA_API_KEY=dein_key                            # Key unter https://miragea.ai/workspace/api generieren, nur als Umgebungsvariable
python3 scripts/miragea_audio.py capabilities             # Aktuelle Modi, Tags, Zeichenlimits und Preise (live)
python3 scripts/miragea_audio.py actors --limit 20        # Vorhandene Rollen und actor_ids (mit `has_more=true` und `--offset` weiterblättern)
  • Standard API-Root ist https://miragea.ai/v1; setze MIRAGEA_BASE_URL (inklusive /v1) nur für private Deployments.
  • Den Key niemals in Chats oder Dateien einfügen. Ohne Key zuerst mit --dry-run den Ablauf testen.
python3 scripts/miragea_audio.py capabilities                                           # Zuerst subtitles.points_per_second, max_upload_mb, max_duration_minutes prüfen
python3 scripts/miragea_audio.py recognize --file video.mp4 --wait --output video.srt       # Video automatisch untertiteln
python3 scripts/miragea_audio.py recognize --file interview.mp3 --wait --subtitle-format txt --output interview.txt   # Audio in Text umwandeln
python3 scripts/miragea_audio.py recognize --file kurs.m4a --wait --subtitle-format json --output kurs.json # Text + Sprache + Zeitsegmente
python3 scripts/miragea_audio.py wait TASK_ID --subtitle-format srt --output video.srt     # Nach Timeout nachfragen, nicht erneut einreichen
  • Erkennung verbraucht Guthaben: Das Skript liest vor dem Einreichen die aktuelle Rate pro Sekunde als expected_rate; mit --expected-rate wert die Rate fixieren – bei Änderung lehnt der Server ab, erst nach Bestätigung einreichen.
  • Dateien über dem Größenlimit aus capabilities werden lokal mit Fehler abgewiesen; das Zeitlimit wird ebenfalls anhand von capabilities geprüft.
  • --output überschreibt keine vorhandenen Dateien – neuen Dateinamen wählen.
  • Untertitel-Erkennung hat keinen Offline-Testlauf; die Untertitelausgabe bei Vertonung kann mit voiceover.py script ... --dry-run offline getestet werden.

Deine Anweisung → Agent-Ausführung

Du sagstAgent führt aus
„Diesem Video Untertitel hinzufügen“capabilities prüfen → recognize --file video.mp4 --wait --output video.srt → mit ffmpeg einbrennen oder in CapCut importieren
„Diese Aufnahme in Text umwandeln“recognize --file aufnahme.mp3 --wait --subtitle-format txt --output aufnahme.txt
„Video ist zu groß zum Hochladen“Zuerst nur Tonspur extrahieren: ffmpeg -i video.mp4 -vn -ac 1 -b:a 64k tonspur.mp3
„Task hat zu lange gedauert“wait TASK_ID --output untertitel.srt – nicht erneut einreichen
„Untertitelzeilen sind zu lang“In CapCut anpassen oder Agenten auffordern, lange Sätze an Satzzeichen zu teilen
„Ich habe noch keine Vertonung, möchte aber beides“voiceover.py script skript.md -o out --preset koubo
„Untertitel sollen zweisprachig sein“Zuerst SRT erkennen, dann vom Agenten jeden Text übersetzen lassen, Zeitleiste behalten, zweites SRT erstellen

Methodik zur Untertitelgenerierung: Bessere Erkennung und Darstellung

1. Audio vor dem Hochladen aufbereiten

  • Stimme klar stellen: Bei lauter Hintergrundmusik eine Version nur mit Stimme oder leiserer Musik exportieren.
  • Nur Tonspur für schnellere Ergebnisse: Große Videos mit ffmpeg -i video.mp4 -vn -ac 1 -b:a 64k tonspur.mp3 konvertieren – geringere Größe, gleiche Zeitleiste.
  • Lange Inhalte segmentieren: Inhalte länger als das capabilities-Limit in Abschnitte aufteilen, getrennt erkennen und später im Schnittprogramm anordnen.

2. Das richtige Ausgabeformat wählen

FormatVerwendung
srtCapCut, Premiere, ffmpeg, YouTube/Bilibili-Untertitel
txtTranskript, Besprechungsprotokoll, Blog-Anpassung
jsonProgrammgesteuerte Verarbeitung: text, language, segments[{start,end,text}]

3. Checkliste nach der Erkennung

  • Fachbegriffe, Namen, Marken, englische Abkürzungen korrekt? (Im SRT global ersetzen)
  • Zahlen und Einheiten einheitlich?
  • Passt die Länge jeder Untertitelzeile zum Bild? Für Hochformate: 12–16 Zeichen pro Zeile empfehlenswert.
  • Füllwörter („also“, „sozusagen“) entfernen?
  • Stimmen Anfangs- und Endzeitpunkte mit dem Bild überein?

4. Gestaltungsempfehlungen für Kurzvideo-Untertitel

  • Untertitel im unteren Drittel des Bildes positionieren, nicht über Schaltflächen oder Überschriften.
  • Ein Satz pro Bildschirm, nicht mehr als zwei Zeilen.
  • Wichtige Wörter können in CapCut einzeln gestaltet werden – SRT enthält nur den reinen Text.

5. Synchron-Untertitel aus dem Vertonungsskript (keine Erkennung nötig)

Wenn der Video-Ton aus einem Skript stammt, direkt voiceover.py script verwenden: Die Untertitelzeit ergibt sich aus der tatsächlichen Audiolänge jedes Satzes – ein Schritt weniger als bei nachträglicher Erkennung; --max-chars steuert die Zeichenanzahl pro Zeile, --speaker-labels fügt Rollennamen für Mehrsprecher-Untertitel hinzu.

Beispielskript (examples/example.md: Synchron-Untertitel bei Vertonung)

---
host: actor_id=DEINE_ACTOR_ID speed=1.0
---
# Beispiel für Synchron-Untertitel: Ein Vlog-Kommentar
[host] Heute zeige ich dir, wie ich einem Video Untertitel hinzufüge.
Zuerst das Video als Datei exportieren.
Zweiter Schritt, eine Befehlszeile zur Erkennung, erhalte SRT.
[pause 0.3]
Dritter Schritt, in CapCut importieren oder mit ffmpeg direkt einbrennen.

Testlauf: python3 scripts/voiceover.py script examples/example.md -o out --preset koubo --dry-run

Untertitel zum Video hinzufügen

# Weiche Untertitel (im Player ein-/ausschaltbar, benötigt lokales ffmpeg)
ffmpeg -i video.mp4 -i video.srt -c copy -c:s mov_text video_mit_ut.mp4
# Feste Untertitel (im Bild eingebrannt, auf allen Plattformen sichtbar)
ffmpeg -i video.mp4 -vf subtitles=video.srt -c:a copy endprodukt.mp4
  • CapCut: Text → Untertitel importieren → .srt auswählen, dann Stil anpassen.
  • Premiere: .srt als Untertitelspur importieren.

Methodenvergleich: Drei Ansätze zur Untertitelgenerierung

KriteriumManuelle VertonungLokales Open-Source TTS-ModellDieses Skill
GPU erforderlich?Nein, aber Aufnahmestudio und Synchronsprecher nötigMeist ja (kleine Modelle auf CPU möglich, aber langsamer); Modellgewichte herunterladen, Umgebung einrichtenNein, nur lokale Python-Standardbibliothek, Generierung in der Cloud
ÄnderungskostenJeder Satz muss neu aufgenommen und synchronisiert werdenNeu generieren, aber Segmentierung, Zusammenführung und Synchronisation selbst durchführenNur den geänderten Satz neu generieren, restliche Sätze aus out/lines/ Cache wiederverwenden, automatisch neu zusammensetzen und Untertitel ausgeben
Mehrere SprecherMehrere Synchronsprecher erforderlichVom Modell abhängig, meist manuelle Segmentierung und ZusammenführungIm Skript mit [Rolle]-Tags, ein Befehl erzeugt die komplette Mehrspur-Audio
Untertitel-ZeitleisteZusätzliches Abtippen und Zeitmarken setzenÜblicherweise erneute Spracherkennung nötigGleichzeitige Ausgabe von SRT und Satzzeitangaben manifest.json bei Vertonung
Lange VideosZeitaufwändig für Abtippen und ZeitmarkenLokale Erkennungsmodelle benötigen GPU oder lange LaufzeitHochladen in die Cloud, bei Timeout mit Task-ID nachfragen

Fazit: Für fertige Videos, die schnell Untertitel oder Transkripte benötigen → recognize. Für Videos, die aus einem Textskript vertont werden → script mit synchronen Untertiteln ist der effizienteste Weg.

Häufig gestellte Fragen (FAQ)

Welche Dateien werden für die Untertitelgenerierung unterstützt? Lokale Audio- oder Videodateien können als Quellen verwendet werden. Größen- und Zeitlimits gemäß capabilities unter subtitles.max_upload_mb und max_duration_minutes.

Wie füge ich die automatisch generierten Untertitel in ein Video ein? In CapCut über „Untertitel importieren“ oder mit ffmpeg: weiche Untertitel -c:s mov_text, feste Untertitel -vf subtitles=untertitel.srt.

Kann ich Audio in SRT-Untertitel exportieren? Standardmäßig wird SRT ausgegeben; mit --subtitle-format txt erhält man ein reines Transkript, mit json Text, Sprache und Zeitsegmente.

Was ist der Unterschied zwischen Audio-zu-Text und Untertitelgenerierung? Ein und derselbe Erkennungsvorgang mit unterschiedlichem Ausgabeformat: SRT enthält Zeitleisten für Untertitel, TXT nur den Text für Transkripte.

Kostet die Untertitelgenerierung etwas? Die Abrechnung erfolgt nach Mediadauer und aktueller Rate pro Sekunde, gemäß der live abgerufenen capabilities. Das Skript übermittelt die aktuelle Rate; bei Änderung wird die Anfrage abgelehnt – es erfolgt keine stille Verrechnung zum neuen Satz.

Die Erkennung dauert zu lange und es gibt einen Timeout – muss ich die Datei erneut hochladen? Nein. Verwende die zurückgegebene task_id mit miragea_audio.py wait TASK_ID --output untertitel.srt zum Abruf. Bei Netzwerkunterbrechung einfach mit demselben Idempotenzschlüssel wiederholen.

Kann die Untertitelgenerierung Englisch oder andere Sprachen erkennen? Das Ergebnis enthält ein language-Feld. Welche Sprachen genau unterstützt werden, hängt von der serverseitigen Erkennung ab – zur Sicherheit einen kurzen Testausschnitt verwenden.

Kann ich zweisprachige Untertitel (z. B. Chinesisch/Englisch) erstellen? Zuerst SRT erkennen, dann vom Agenten Zeile für Zeile übersetzen lassen, Zeitleiste beibehalten und zweites SRT oder kombiniertes SRT erstellen.

Benötigt die KI-Untertitelerkennung eine Grafikkarte? Nein. Die Erkennung erfolgt in der Cloud; lokal wird nur die Python 3.9+ Standardbibliothek benötigt.

Welche Agenten unterstützt dieser Skill? Claude Code, Codex, OpenClaw, Cursor, WorkBuddy – alle, die Python-Skripte ausführen können.

Probleme?

SymptomLösung
missing_api_key / MIRAGEA_API_KEY is not setKey generieren und export MIRAGEA_API_KEY=...; oder zunächst mit --dry-run testen
speakers without a voiceFür die Rolle actor_id= oder ref= angeben
401Key prüfen; Key nicht in Logs schreiben
403API-Zugriffsberechtigung des Kontos prüfen
400 / 413Parameter korrigieren: Modus, Tags, Geschwindigkeit, Zeichenlimit pro Satz; oder Dateigröße / -länge reduzieren
409Idempotenzschlüssel für andere Eingabe verwendet, oder Untertitel-Rate geändert – nach erneuter Bestätigung einreichen
429Guthaben aufgebraucht oder Ratenlimit – warten oder Guthaben aufladen
Timeout / NetzwerkunterbrechungTask läuft möglicherweise noch: Gleichen Befehl erneut ausführen (derselbe Idempotenzschlüssel holt den ursprünglichen Task ab) oder miragea_audio.py task / wait TASK_ID verwenden – keinen neuen Schlüssel verwenden
Fehler beim Zusammenfügen wegen inkonsistentem WAV-FormatJeder Satz wird in out/lines/ gespeichert – mit Schnittsoftware oder ffmpeg zusammenfügen

Offizielle Client-Exit-Codes: 0 = Erfolg (bei fehlendem --wait möglicherweise noch in der Warteschlange), 1 = Task fehlgeschlagen, 2 = Client- oder API-Fehler.

Compliance

  • Verwende nur Stimmen, die dir selbst gehören oder für die du eine ausdrückliche Genehmigung hast. Keine Stimmen von Prominenten, Influencern oder anderen Unbefugten klonen.
  • Gemäß den Richtlinien zur Kennzeichnung KI-generierter Inhalte (China: „Methoden zur Kennzeichnung KI-generierter synthetischer Inhalte“; Plattformen: Douyin, Kuaishou, WeChat Video, Xiaohongshu, Bilibili) KI-generierte Inhalte bei Veröffentlichung kennzeichnen oder deklarieren.
  • Vor der Erkennung fremder Audio-/Videoinhalte (Interviews, Besprechungen, Kurse) die Einwilligung der Betroffenen einholen. Bei Untertiteln mit personenbezogenen Daten Speicherung und Weitergabe beachten.
  • scripts/miragea_audio.py ist der offizielle Client, unverändert ausgeliefert; scripts/voiceover.py (Skript-Zusammenfügung) ist Originalarbeit, lizenziert unter MIT (siehe LICENSE.txt). Vertonungs- und Untertitel-Funktionen werden von der offenen Miragea API bereitgestellt.

Zusammenfassung auf Englisch

  • AI subtitle generator (Untertitelgenerierung): eine lokale Video- oder Audiodatei mit dem offiziellen Client via recognize hochladen und zeitgesteuerte SRT, TXT-Transkript oder JSON (text, language, segments) speichern.
  • Der Client liest vor dem Einreichen die aktuelle Rate und das Größenlimit live aus capabilities; geänderte Raten werden serverseitig abgelehnt. Lange Jobs mit wait TASK_ID fortsetzen.
  • Für vertonte Skripte erzeugt voiceover.py script auf die generierte Audio abgestimmte Untertitel. Python 3.9+ Standardbibliothek, keine GPU. Service: Miragea API (https://miragea.ai/v1).

Schlüsselwörter: Untertitelgenerierung, Video automatisch untertiteln, Audio in Untertitel, SRT, Video mit Untertiteln, automatische Untertitelgenerierung, KI-Untertitel, Audio in Text, Video in Text, Sprache in Text, Untertitelgenerator, SRT-Untertitel, Video-Untertitelgenerator, subtitle generator, speech to text, auto captions

Individual skills in this repo

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

yanghhu/ai-podcast-voiceover

AI播客、播客配音、双人对谈播客技能:把文章、读书笔记、公众号文章或写好的对谈稿,整理成适合“听”的播客稿,单人主播或两位主持人各用一个音色,逐句配音并拼成整期节目 WAV,同时输出 SRT 字幕和逐句时间轴;再用 shownotes.py 根据稿件里的 `## 章节` 自动生成带时间戳的节目章节(chapters.txt / chapters.json)和完整文字稿 shownotes.md,可直接贴到小宇宙、喜马拉雅、Apple Podcasts 等平台的节目简介。改一句只重配一句。可用账号里的角色或本人授权的参考音频声音。由 Miragea 开放 API 生成语音,本地只需 Python 3.9+ 标准库、无需显卡,可 --dry-run 离线试跑;计费与限额以 capabilities 实时返回为准。适用于 Claude Code、Codex、OpenClaw、Cursor、WorkBuddy。AI podcast, podcast voiceover, two-host dialogue, show notes, chapters.

yanghhu/koubo-ai-voiceover

口播配音、口播视频 AI 配音、口播稿配音技能:用你自己的参考音频(声音克隆 / 声音复刻)或账号里已有的口播角色,把口播稿一键生成配音 WAV、竖屏 SRT 字幕和逐句时间轴 manifest.json;说错一句只改一行重新生成,不用对着镜头反复录。适合抖音、视频号、小红书、快手、B站的知识口播、财经口播、情感口播、职场口播博主和 MCN 批量更新;可用语气标签和语速控制口播节奏。配音由 Miragea 开放 API 完成,本地只需 Python 3.9+ 标准库、无需显卡,可 --dry-run 离线试跑。适用于 Claude Code、Codex、OpenClaw、Cursor、WorkBuddy。Talking-head AI voiceover, voice cloning, SRT subtitles.

yanghhu/miragea-video-voiceover

AI配音、视频配音、文字转语音(TTS)、声音克隆与字幕生成技能:把口播稿、电影解说稿、小说推文、广告脚本、带货文案、有声书章节写成带 [角色] 标签的稿件,一条命令生成多角色配音 WAV、带时间轴的 SRT 字幕和逐句时间 manifest.json,直接导入剪映 / CapCut / Premiere / ffmpeg。音色可用账号已有角色,也可用参考音频 + 对应文本做声音克隆;支持语气标签、0.25–4 倍语速、停顿控制;已有音频 / 视频可识别成 SRT / TXT / JSON 字幕。内置口播、解说、带货、数字人、广告片、有声书 6 个节奏预设;改一句只重配一句。配音与字幕由 Miragea 开放 API 生成,本地只需 Python 3.9+ 标准库、无需显卡,可 --dry-run 离线试跑。适用于 Claude Code、Codex、OpenClaw、Cursor、WorkBuddy。AI voiceover, text to speech, voice cloning, multi-speaker dubbing and SRT subtitles.

yanghhu/movie-recap-ai-voiceover

电影解说配音、短剧解说配音、影视解说配音技能:解说旁白(narrator)加多个角色台词,各用不同音色,一条命令生成整段 AI 配音 WAV、SRT 字幕和逐句时间轴 manifest.json,按时间轴在剪映 / CapCut / Premiere 里对画面。音色可用账号已有角色或参考音频声音克隆,打造解说号固定声线;语气标签和语速可调;改一句稿只重配一句。适合电影解说号、电视剧解说、短剧解说、动漫解说、纪录片旁白。配音由 Miragea 开放 API 完成,本地只需 Python 3.9+ 标准库、无需显卡,可 --dry-run 离线试跑。适用于 Claude Code、Codex、OpenClaw、Cursor、WorkBuddy。Movie recap AI voiceover, multi-voice narration, voice cloning, SRT subtitles.

yanghhu/novel-video-voiceover

小说推文配音、有声书配音、多角色配音技能:把小说推文文案、网文章节、故事、广播剧剧本按旁白和角色分配不同音色,一键生成整段配音 WAV、带角色名的 SRT 字幕和逐句时间轴 manifest.json,直接配画面做小说推文视频;段落、场景、章节停顿可控。适合小说推文号、故事号、网文作者有声化、睡前故事和广播剧小样。音色可用账号已有角色或参考音频声音克隆,固定旁白声线;语气标签和语速可调;改一句只重配一句。由 Miragea 开放 API 生成,本地只需 Python 3.9+ 标准库、无需显卡,可 --dry-run 离线试跑。适用于 Claude Code、Codex、OpenClaw、Cursor、WorkBuddy。Novel video voiceover, audiobook narration, multi-voice, SRT subtitles.

Verwandte Skills