KI-Sprachaufnahme · Voice-over mit edge-tts
Satzweise synthetisieren → Stille entfernen → 48 kHz WAV → durations.json. Nachfolgende Untertitel und Szenenlängen werden an die tatsächliche Sprachdauer angepasst – keine asynchrone Ton-Bild-Schere mehr.
Teil von ecommerce-video-skills · Skript:
scripts/tts_edge.py(benötigt nuredge-tts+ ffmpeg)
Eingaben
- Sprachskript (ein Satz pro Zeile oder das
line-Feld ausstoryboard.json) - Sprache / Stimmlagen-Präferenz (männlich/weiblich, lebhaft/ruhig), Sprachgeschwindigkeit
- Umgebung:
pip install edge-tts, ffmpeg, Netzwerkzugriff auf den Microsoft TTS-Dienst
Schritte
-
Umschreiben in „gut lesbare“ Sprachvorlage (siehe Regeln), pro Satz 8–20 Zeichen.
-
Stimmlage auswählen (alle anzeigen mit
python scripts/tts_edge.py --list zh-CN):Szenario Empfohlene Stimme Lebendige Produktvorstellung (männlich) zh-CN-YunxiNeuralFreundliche Produktvorstellung (weiblich) zh-CN-XiaoxiaoNeural/zh-CN-XiaoyiNeuralLeidenschaftlicher Verkaufsaktion zh-CN-YunjianNeuralProfessionelle Erklärung zh-CN-YunyangNeuralTaiwan / Hongkong zh-TW-HsiaoChenNeural/zh-HK-HiuMaanNeuralEnglisch en-US-AndrewNeural·en-US-AvaNeural·en-US-EmmaNeural -
Synthese:
pip install edge-tts # Einzelsatz Probehören python scripts/tts_edge.py "Im Sommer wird kaltes Wasser, das man mitnimmt, schon vor Mittag warm?" --voice zh-CN-YunxiNeural --rate "+10%" -o out/hook.wav # Vollständiges Storyboard (eine Zeile pro Szene → build/tts/l00.wav … + durations.json) python scripts/tts_edge.py --storyboard storyboard.json --outdir build/tts -
Vor der Batch-Verarbeitung 2 Sätze probehören: Sprechgeschwindigkeit
+5%bis+15%klingt am natürlichsten für Verkaufssprache; über+20%wirkt gehetzt. -
An
ffmpeg-auto-assembleübergeben (es ruft dieses Skript automatisch auf) oder in die eigene Bearbeitungssoftware einbinden.
Regeln zur Skript-Umschreibung
- Zahlen als „gesprochene Form“ schreiben:
2核8G→zwei Kerne acht G;24h→vierundzwanzig Stunden; Buchstaben in Modellbezeichnungen mit Leerzeichen trennen:A I. Untertitel können die Originalschreibweise behalten (sub-Feld). - Ein Satz sagt nur eine Sache; Komma ist ein Atemholpunkt, Satzende mit Punkt/Fragezeichen für fallende Intonation.
- Schriftsprache vermeiden: „Dieses Produkt verfügt über…“ → „Diese Tasse…“.
- Englische Markennamen, falls falsch ausgesprochen, in der
linephonetisch oder umschrieben notieren,subbehält die korrekte Schreibweise.
Prompt-Vorlage
Schreibe den folgenden Verkaufstext in ein für TTS geeignetes Sprachskript um: jeder Satz 8–20 Zeichen, ein Satz eine Sache, umgangssprachlich;
Zahlen und Buchstaben in gesprochener Form; zusätzlich eine Spalte „Untertitel“ mit Originalschreibweise und **fett** markiertem 1 Schlüsselwort ausgeben.
Keine Verkaufsargumente oder Daten hinzufügen, die nicht im Originaltext stehen. Originaltext: {…}
Checkliste
- Erst 2 Sätze probehören, um Stimmlage/Sprechgeschwindigkeit zu bestätigen
- Aussprache von Zahlen, Englisch, Markennamen korrekt
-
durations.jsonerstellt, Gesamtlänge entspricht Ziel - Vor kommerzieller Nutzung die Kennzeichnungspflichten für KI-generierte Sprache auf der jeweiligen Plattform/Region prüfen (z.B. „KI-generiert“ Kennzeichnung)
Häufige Probleme und Behebungen
| Problem | Behebung |
|---|---|
edge-tts failed / Timeout | Netzwerkproblem; Skript hat bereits 3 Wiederholungen; Netz wechseln oder später erneut versuchen; offline mit assemble.py --tts none zur Vorschau |
| Falsche Aussprache | In line phonetische/umgeschriebene Form notieren, sub behält Original |
| Zu lange Pausen zwischen Sätzen | Stille automatisch entfernt; pad im Storyboard anpassen (Standard 0,25s) |
| Tonfall zu monoton | Zu YunjianNeural/XiaoyiNeural wechseln; --pitch "+5Hz"; Satzenden mit Frage-/Ausrufezeichen |
| Authentischere Stimme benötigt | edge-tts ist synthetisch; bei hohen Ansprüchen echte Aufnahmen verwenden – die Pipeline funktioniert weiterhin (Aufnahmen in build/tts/lXX.wav legen) |
edge-tts wird von der Community gepflegt (rany2/edge-tts, LGPL-3.0) und greift auf den Online-Dienst von Microsoft zurück; dieses Repository installiert es lediglich als Abhängigkeit und enthält keinen eigenen Quellcode.