Podcast-Generierungs-Skill
Übersicht
Dieser Skill generiert hochwertiges Podcast-Audio aus Textinhalten. Der Workflow umfasst das Erstellen eines strukturierten JSON-Skripts (Konversationsdialog) und die Durchführung der Audio-Generierung mittels Text-zu-Sprache-Synthese.
Kernfunktionen
- Konvertieren beliebiger Textinhalte (Artikel, Berichte, Dokumentationen) in Podcast-Skripte
- Generieren natürlicher Zwei-Hoster-Konversationsdialoge (männlicher und weiblicher Host)
- Synthetisieren von Sprachaudio mittels Text-zu-Sprache
- Mischen von Audio-Chunks zu einer finalen Podcast-MP3-Datei
- Unterstützung für englische und chinesische Inhalte
Arbeitsablauf
Schritt 1: Anforderungen verstehen
Wenn ein Benutzer die Generierung eines Podcasts anfordert, ermitteln:
- Quellinhalt: Der Text/Artikel/Bericht, der in einen Podcast konvertiert werden soll
- Sprache: Englisch oder Chinesisch (basierend auf dem Inhalt)
- Ausgabeort: Wo der generierte Podcast gespeichert werden soll
- Sie müssen nicht den Ordner unter
/mnt/user-dataüberprüfen
Schritt 2: Strukturiertes Skript-JSON erstellen
Erstellen Sie eine strukturierte JSON-Skriptdatei unter /mnt/user-data/workspace/ mit dem Namensmuster: {aussagekräftiger-name}-skript.json
Die JSON-Struktur:
{
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Dialogtext"},
{"speaker": "female", "paragraph": "Dialogtext"}
]
}
Schritt 3: Generierung ausführen
Rufen Sie das Python-Skript auf:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/skript-datei.json \
--output-file /mnt/user-data/outputs/generierter-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/generierter-podcast-transkript.md
Parameter:
--script-file: Absoluter Pfad zur JSON-Skriptdatei (erforderlich)--output-file: Absoluter Pfad zur MP3-Ausgabedatei (erforderlich)--transcript-file: Absoluter Pfad zur Transkript-Markdown-Datei (optional, aber empfohlen)
[!IMPORTANT]
- Führen Sie das Skript in einem vollständigen Aufruf aus. Teilen Sie den Workflow NICHT in separate Schritte auf.
- Das Skript behandelt alle TTS-API-Aufrufe und die Audio-Generierung intern.
- Lesen Sie die Python-Datei NICHT, rufen Sie sie einfach mit den Parametern auf.
- Fügen Sie immer
--transcript-filehinzu, um ein lesbares Transkript für den Benutzer zu generieren.- Der TTS-Anbieter und seine Nebenläufigkeit werden automatisch aus Umgebungsvariablen ausgewählt – Sie wählen oder justieren sie nicht.
Skript-JSON-Format
Die Skript-JSON-Datei muss dieser Struktur folgen:
{
"title": "Die Geschichte der Künstlichen Intelligenz",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hallo Deer! Willkommen zurück zu einer weiteren Episode."},
{"speaker": "female", "paragraph": "Hallo zusammen! Heute haben wir ein spannendes Thema zu besprechen."},
{"speaker": "male", "paragraph": "Genau! Wir werden über ... sprechen."}
]
}
Felder:
title: Titel der Podcast-Episode (optional, wird als Überschrift im Transkript verwendet)locale: Sprachcode – "en" für Englisch oder "zh" für Chinesischlines: Array von Dialogzeilenspeaker: Entweder "male" (männlich) oder "female" (weiblich)paragraph: Der Dialogtext für diesen Sprecher
Richtlinien zum Skriptschreiben
Beachten Sie beim Erstellen des Skript-JSONs diese Richtlinien:
Format-Anforderungen
- Nur zwei Hosts: männlich und weiblich, natürlich abwechselnd
- Ziel-Laufzeit: ca. 10 Minuten Dialog (ca. 40–60 Zeilen)
- Beginnen Sie mit dem männlichen Host, der eine Begrüßung mit „Hallo Deer“ spricht
Ton & Stil
- Natürlicher, konversationeller Dialog – wie zwei Freunde, die sich unterhalten
- Verwenden Sie lockere Ausdrücke und konversationelle Übergänge
- Vermeiden Sie übermäßig formelle Sprache oder akademischen Ton
- Fügen Sie Reaktionen, Nachfragen und natürliche Einwürfe ein
Inhaltsrichtlinien
- Häufiges Hin und Her zwischen den Hosts
- Halten Sie Sätze kurz und leicht verständlich, wenn sie gesprochen werden
- Nur Klartext – keine Markdown-Formatierung in der Ausgabe
- Übersetzen Sie technische Konzepte in zugängliche Sprache
- Keine mathematischen Formeln, Code oder komplexe Notationen
- Gestalten Sie Inhalte ansprechend und zugänglich für Audio-only-Hörer
- Schließen Sie Metainformationen wie Daten, Autorennamen oder Dokumentstruktur aus
Beispiel zur Podcast-Generierung
Benutzeranfrage: „Erstelle einen Podcast über die Geschichte der Künstlichen Intelligenz“
Schritt 1: Skriptdatei erstellen /mnt/user-data/workspace/ki-geschichte-skript.json:
{
"title": "Die Geschichte der Künstlichen Intelligenz",
"locale": "en",
"lines": [
{"speaker": "male", "paragraph": "Hallo Deer! Willkommen zurück zu einer weiteren faszinierenden Episode. Heute tauchen wir in etwas ein, das buchstäblich unsere Zukunft gestaltet – die Geschichte der künstlichen Intelligenz."},
{"speaker": "female", "paragraph": "Oh, ich liebe dieses Thema! Weißt du, KI fühlt sich so modern an, aber sie hat tatsächlich Wurzeln, die über siebzig Jahre zurückreichen."},
{"speaker": "male", "paragraph": "Genau! Alles begann in den 1950er Jahren. Der Begriff künstliche Intelligenz wurde tatsächlich von John McCarthy im Jahr 1956 auf einer berühmten Konferenz in Dartmouth geprägt."},
{"speaker": "female", "paragraph": "Moment, sie dachten also schon damals über Maschinen nach, die denken können? Das ist unglaublich!"},
{"speaker": "male", "paragraph": "Stimmt? Die frühen Pioniere waren so optimistisch. Sie dachten, wir hätten innerhalb einer Generation KI auf menschlichem Niveau."},
{"speaker": "female", "paragraph": "Aber so ganz hat das nicht geklappt, oder?"},
{"speaker": "male", "paragraph": "Nein, überhaupt nicht. Die 1970er Jahre brachten den sogenannten ersten KI-Winter..."}
]
}
Schritt 2: Generierung ausführen:
python /mnt/skills/public/podcast-generation/scripts/generate.py \
--script-file /mnt/user-data/workspace/ki-geschichte-skript.json \
--output-file /mnt/user-data/outputs/ki-geschichte-podcast.mp3 \
--transcript-file /mnt/user-data/outputs/ki-geschichte-transkript.md
Dies generiert:
ki-geschichte-podcast.mp3: Die Audio-Podcast-Dateiki-geschichte-transkript.md: Ein lesbares Markdown-Transkript des Podcasts
Spezifische Vorlagen
Lesen Sie die folgende Vorlagendatei nur, wenn sie mit der Benutzeranfrage übereinstimmt.
- Tech-Erklärer – Zur Konvertierung von technischen Dokumentationen und Tutorials
Ausgabeformat
Der generierte Podcast folgt dem „Hello Deer“-Format:
- Zwei Hosts: ein männlicher, ein weiblicher
- Natürlicher konversationeller Dialog
- Beginnt mit der Begrüßung „Hallo Deer“
- Ziel-Laufzeit: ca. 10 Minuten
- Abwechselnde Sprecher für einen ansprechenden Ablauf
Ausgabehandhabung
Nach der Generierung:
- Podcasts und Transkripte werden in
/mnt/user-data/outputs/gespeichert - Teilen Sie sowohl die Podcast-MP3 als auch das Transkript-MD mit dem Benutzer mithilfe des Tools
present_files - Geben Sie eine kurze Beschreibung des Generierungsergebnisses an (Thema, Dauer, Hosts)
- Bieten Sie an, neu zu generieren, falls Anpassungen erforderlich sind
Anforderungen
Die folgenden Umgebungsvariablen müssen gesetzt sein:
- Für Volcengine:
VOLCENGINE_TTS_APPIDundVOLCENGINE_TTS_ACCESS_TOKEN - Für MiniMax:
MINIMAX_API_KEY VOLCENGINE_TTS_CLUSTER: Volcengine TTS-Cluster (optional, standardmäßig „volcano_tts“)
Hinweise
- Führen Sie die gesamte Pipeline immer in einem Aufruf aus – keine Notwendigkeit, einzelne Schritte zu testen oder sich über Zeitüberschreitungen Gedanken zu machen
- Das Skript-JSON sollte mit der Inhaltssprache übereinstimmen (en oder zh)
- Technische Inhalte sollten im Skript für die Audiozugänglichkeit vereinfacht werden
- Komplexe Notationen (Formeln, Code) sollten im Skript in einfache Sprache übersetzt werden
- Lange Inhalte können zu längeren Podcasts führen
Anbieter (Volcengine / MiniMax)
Automatisch ausgewählt durch Umgebungsvariablen:
VOLCENGINE_TTS_APPID+VOLCENGINE_TTS_ACCESS_TOKENgesetzt → Volcengine TTS (Standard).- Nur
MINIMAX_API_KEYgesetzt → MiniMax TTS (/v1/t2a_v2). - Erzwingen mit
PODCAST_GENERATION_PROVIDER=volcengine|minimax.
MiniMax-Überschreibungen: MINIMAX_API_HOST (Standard https://api.minimaxi.com),
MINIMAX_TTS_MODEL (Standard speech-2.6-hd), MINIMAX_TTS_VOICE_MALE
(Standard male-qn-qingse), MINIMAX_TTS_VOICE_FEMALE (Standard female-tianmei).
Die Nebenläufigkeit wird intern von jedem Anbieter gesteuert – MiniMax läuft single-threaded, um Rate-Limit-Fehler zu reduzieren, Volcengine verwendet 4 Worker. Es gibt keinen anruferseitigen Nebenläufigkeitsknopf; vorübergehende Ratenbegrenzungen werden durch automatische Wiederholungen mit Backoff behandelt.