Files
mop-skills/skills/text-to-audio/SKILL.md
T

4.6 KiB
Raw Blame History


name: text-to-audio description: Transformiert Quelltexte, Recherchen, Dossiers, Artikel oder Notizen in ein hochwertiges Audio-Dossier / Podcast. Unterstützt flexible Zieldauer (z.B. 2m, 5m, 10m), filtert Inhalte vorab nach Wichtigkeit (Pacing: ~130 Wörter/Minute) und generiert wahlweise Solo-Briefings oder lebendige Zwei-Sprecher-Dialoge (NotebookLM-Style) über OpenRouter TTS.

🎙️ Text-to-Audio Dossier & Podcast Producer

Dieser Skill fungiert als spezialisierter Audio-Producer. Er nimmt beliebige Quelltexte (Rechercheergebnisse, Dossiers, Notizen aus dem Knowledge-Wiki, tägliche Reports oder Artikel) entgegen, komprimiert sie nach Wichtigkeit auf eine gewünschte Hördauer und generiert eine fertige, abspielbare MP3.


🧭 Kern-Workflow

Wenn der User ein Audio-Dossier oder einen Podcast wünscht (z.B. "Erstelle ein 3-Minuten Audio-Dossier über X", "Mach einen Podcast zu Thema Y", "Lies mir das als Audio vor"), gehe strikt in folgenden 4 Schritten vor:

1. Zieldauer & Wortbudget ermitteln

Gesprochenes Deutsch / Englisch hat ein natürliches Sprechtempo von ca. 120–140 Wörtern pro Minute. Ermittle das Wortbudget:

  • Kurz-Briefing (2m): ca. 250–300 Wörter.
  • Standard-Dossier (3m–4m, Default): ca. 400–550 Wörter.
  • Ausführlicher Deep Dive (5m–8m): ca. 650–1.000 Wörter.
  • Formel: Zielminuten × 130 Wörter.

2. Redaktionelle Wichtigkeits-Filterung (Preprocessing)

Quelltexte sind für das Auge geschrieben, nicht für das Ohr. Bereite den Inhalt vor:

  • Wichtigkeits-Kompression: Filter die 3 bis 5 wichtigsten Kernaussagen und Aha-Momente heraus. Streiche Nebensächlichkeiten, Tabellen, rohe URLs, Codeblöcke und Fußnoten.
  • Auditiver Schreibstil: Formuliere in natürlicher, flüssiger gesprochener Sprache mit klaren Übergängen ("Ein entscheidender Punkt hierbei ist...", "Was viele überrascht: ...", "Kurz gesagt: ...").
  • Keine Markdown-Artefakte: Verwende im Skript keine Sterne (**), Listenstriche oder Links. Zahlen und Akronyme ausschreiben, wenn die Aussprache sonst unklar ist (z.B. "Kubernetes ein Punkt zweiunddreißig" statt "K8s 1.32").

3. Format-Entscheidung: Solo vs. Dialog (NotebookLM-Style)

A. Dialog-Modus (Empfohlen für Themen-Deep-Dives & Podcasts)

Zwei Sprecher spielen sich die Bälle zu:

  • Julius (aura-2-julius-de): Host, moderiert an, stellt neugierige Fragen, zieht Zwischenfazits.
  • Lara (aura-2-lara-de): Expertin / Co-Host, erklärt Zusammenhänge, bringt Hintergründe und Beispiele.

Schreibe das Skript als JSON-Array:

[
  {"speaker": "julius", "text": "Willkommen zum heutigen Audio-Dossier. Wir schauen uns heute das Thema X an. Lara, was ist da gerade los?"},
  {"speaker": "lara", "text": "Hi Julius! Spannend ist vor allem, dass sich hier fundamental etwas geändert hat..."},
  {"speaker": "julius", "text": "Das klingt nach einem großen Schritt. Wie wirkt sich das in der Praxis aus?"},
  {"speaker": "lara", "text": "In der Praxis bedeutet das..."}
]

B. Solo-Modus (Empfohlen für schnelle Briefings & Reports)

Ein einzelner Erzähler führt durch das Dossier:

  • Stimme: aura-2-julius-de (Deutsch) oder aura-2-zeus-en (Englisch).

🛠️ Ausführung & Synthese

Nutze das Synthese-Skript scripts/text_to_audio.py.

A. Für Dialog-Modus:

  1. Speichere das strukturierte Skript temporär:
    cat << 'EOF' > /tmp/podcast_script.json
    [
      {"speaker": "julius", "text": "..."},
      {"speaker": "lara", "text": "..."}
    ]
    EOF
    
  2. Generiere das Audio:
    python3 /home/node/mop-skills/mop-skills/skills/text-to-audio/scripts/text_to_audio.py \
      --dialog-file /tmp/podcast_script.json \
      --title "Titel des Dossiers" \
      --output /tmp/audio-dossier.mp3
    

B. Für Solo-Modus:

python3 /home/node/mop-skills/mop-skills/skills/text-to-audio/scripts/text_to_audio.py \
  --text "Dein aufbereitetes Skript..." \
  --voice aura-2-julius-de \
  --title "Titel des Dossiers" \
  --output /tmp/audio-dossier.mp3

(Hinweis: scripts/text_to_audio.py befindet sich relativ im Skill-Ordner, in OpenClaw erreichbar unter /home/node/mop-skills/mop-skills/skills/text-to-audio/scripts/text_to_audio.py oder ./skills/text-to-audio/scripts/text_to_audio.py).


📱 Auslieferung an den User

Das Skript gibt am Ende die Zeile MEDIA:/tmp/...mp3 aus. Übergib in deiner Antwort an Telegram:

Hier ist dein persönliches Audio-Dossier zu **[Thema]** ([Dauer] Min.):

MEDIA:/tmp/audio-dossier.mp3

Telegram bindet daraufhin automatisch den integrierten Podcast-Player ein.