Wie ich meine Podcasts erstelle

Wie ich aus Blogartikeln mit KI-Sprachsynthese vollautomatisch einen Podcast erstelle.

Wie ich meine Podcasts erstelle

Ich hatte vor einiger Zeit mit einem Bekannten immer mal wieder über Themen diskutiert, die mich - oder uns - interessierten. Diese Gespräche habe ich aufgezeichnet und daraus einen Podcast erstellt. Das hat aber nicht lange angehalten, da es immer schwierig war, gemeinsame Termine zu organisieren oder man sich irgendwo im Treppenhaus über den Weg gelaufen ist, und bereits dort seine Erfahrungen ausgetauscht hatte.

Inzwischen gibt es diesen Podcast wieder, der bei einigen meiner Kollegen morgens nach der Tagesschau und den HeiSecNews im Autoradio läuft, während sie z.B. zur Arbeit fahren.

Selfhosting nicht nötig

Obwohl es meiner Natur widerspricht, muss dieses Projekt nicht vollständig in meinem Keller laufen, da ich die Informationen ja selbst im Internet recherchiert habe und mein Blog und Podcast auch wieder öffentlich erscheinen werden.

KI zur Spracherzeugung

Es gibt inzwischen viele Modelle, mit denen aus Text Sprache erzeugt werden kann. Ich hatte bisher Dia von Narilabs (Demo) verwendet. Aber die Entwicklungen schreiten so schnell voran, dass man kaum mithalten kann.

Models - Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

Vorbereiten des Transskripts für ein Interview

Wenn es danach klingen soll, als würde eine Moderatorin einen Experten einladen, um über einen neuen Artikel auf meinem Blog zu diskutieren, müssen zunächst die Teilnehmer beschrieben werden. Dazu sollte der "eingeladene Experte" mich einigermaßen kennen. Vielleicht hat er eine repräsentative Anzahl meiner Beiträge gelesen, einige Vorträge von mir besucht oder kennt mich persönlich. Daher sollte im Prompt eine Anweisung enthalten sein, die dem Experten die Eigenschaften von "Herrn Meister" ins Gedächtnis pflanzt:

Analysiere die Charaktereigenschaften von Herrn Meister.
Deine Analyse soll ausschließlich auf den Inhalten der Blogartikel basieren,
die in der folgenden Sitemap verlinkt sind: https://blog.meister-security.de/sitemap-posts.xml

Führe die folgenden Schritte aus:
1.  **Sitemap abrufen:** Greife auf die Sitemap unter der angegebenen URL zu.
2.  **URLs extrahieren:** Identifiziere und extrahiere alle URLs, die auf einzelne Blogbeiträge verweisen.
3.  **Inhalte analysieren:** Besuche eine repräsentative Auswahl der extrahierten URLs.
      Lies die Artikel und analysiere den Inhalt im Hinblick auf wiederkehrende Themen, den Schreibstil, geäußerte Meinungen,
      geteilte Erfahrungen/Kenntnisse/Expertise und die generelle Tonalität.
4.  **Eigenschaften und Expertise ableiten:** Leite aus deiner Analyse mindestens dreißig Eigenschaften, Expertisen und Erfahrungen von Herrn Meister ab.
5.  **Antwort merken:** Merke dir die zehn wichtigsten Eigenschaften von Herrn Meister. Begründe jede Eigenschaft kurz und belege sie,
      wenn möglich, mit konkreten Themen oder Beispielen aus den analysierten Artikeln.

Wenn man "Antwort merken" durch "Antwort formulieren" ersetzt, kann man bereits sehen, welchen Eindruck der "Experte" von "Herrn Meister" haben wird:

Eigenschaften im Überblick

  • Sicherheitsbewusst und verantwortungsvoll:
    Die Kernthematik seines gesamten Schaffens ist die IT- und Informationssicherheit. Er zeigt ein tiefes Bewusstsein für die damit verbundenen Risiken und die Verantwortung, die er als Berater und Dienstleister trägt – etwa durch Aufklärung über sichere Serverkonfigurationen oder Schutz vor Ransomware.
  • Praxisorientiert und lösungsorientiert:
    Herr Meister legt großen Wert auf die praktische Anwendbarkeit seiner Empfehlungen. Seine Artikel, sowie Anleitungen zur Härtung von Systemen oder zur Einrichtung von Sicherheitslösungen, bieten konkrete und umsetzbare Lösungen für reale Probleme.
  • Wissbegierig und lernbereit:
    Die IT-Sicherheitslandschaft ist ständig im Wandel. Herr Meister bleibt durch regelmäßige Veröffentlichungen zu neuen Technologien und Sicherheitslücken stets auf dem neuesten Stand, was auch durch seine zahlreichen Zertifizierungen bestätigt wird.
  • Kommunikativ und transparent:
    Über seinen Blog teilt er sein Wissen offen und verständlich. Dabei erklärt er komplexe Sachverhalte anschaulich und gewährt Einblicke in seine Expertise und Projekterfahrungen.
  • Analytisch und strukturiert:
    Die systematische Herangehensweise an technische Herausforderungen, gepaart mit Schritt-für-Schritt-Erklärungen, zeigt seine analytische Stärke.
  • Vielseitig interessiert:
    Von technischen Details wie Firewalls und VPNs über ISMS bis hin zu physischer Sicherheit deckt sein Themenfeld ein breites Spektrum ab.
  • Qualitätsorientiert:
    Die Tiefe seiner Inhalte und die Einbindung anerkannter Standards wie dem BSI IT-Grundschutz zeigen seinen hohen Anspruch an Qualität.
  • Proaktiv und vorausschauend:
    Er setzt auf Prävention und klärt darüber auf, wie sich Unternehmen schon im Vorfeld vor Bedrohungen schützen können.
  • Netzwerk- und Systemexperte:
    Themen wie Active Directory, Exchange-Sicherheit oder VPNs stehen im Mittelpunkt vieler seiner technischen Beiträge.
  • Engagiert für den Mittelstand:
    Seine Artikel sind oft auf die Bedürfnisse kleiner und mittelständischer Unternehmen zugeschnitten, die keine eigenen IT-Security-Abteilungen unterhalten.

Schöner hätte ich es selbst nicht formulieren können. Das könnte so gerne in meiner Personalakte stehen 😇.

Der Prompt für das Interview

Im Detail sieht das bei mir so aus:

# Ziel
Erstelle ein fiktives Podcast-Transkript zwischen zwei Sprechern über den Inhalt des Artikels, der unter '# Artikel-URL' angegeben ist.

# Kontext: Der Blog-Autor (Herr Meister)
Damit der Experte später Herrn Meister korrekt beschreiben kann, ist vorher eine Analyse der Eigenschaften von Herrn Meister durchzuführen, die aus seinem Blog zu extrahieren sind:

[... bereits weiter oben beschrieben ...]

# Rollen (Personas)

**Speaker 1: Sara (Moderatorin)**
- **Alter:** 25
- **Rolle:** Moderatorin des Podcasts 'Selfhosted Tech'.
- **Charakter:** Technikinteressiert, aber reine Nutzerin. Sie hat den Blog von Meister-Security entdeckt,
      schätzt die informativen Artikel und das regelmäßige Erscheinen der Beiträge. Sie stellt die Fragen,
      um den Inhalt des Artikels für sich und ihre Zuhörer verständlich zu machen.

**Speaker 2: Matthias (Experte)**
- **Alter:** 40
- **Rolle:** Eingeladener Experte im Podcast, kennt Herrn Meister bereits von Vorträgen.
- **Charakter:** Spricht respektvoll von 'Herr Meister' und ist nicht mit ihm 'per Du'. Er hat ein tiefes Verständnis für die Themen der Blogs,
      basierend auf der von dir durchgeführten Analyse. Wenn man ihn über Herrn Meister befragt, antwortet er basierend auf den Informationen,
      die Du dir unter '# Kontext' über den Blog-Autor merken solltest. Er erklärt die Inhalte des Artikels, ist von Herrn Meisters Arbeit beeindruckt,
      bleibt aber bescheiden und stellt das Thema in den Vordergrund, nicht die Person.

# Dialog-Anweisungen

- **Thema:** Der Dialog dreht sich ausschließlich um den Inhalt des unter '# Artikel-URL' verlinkten Artikels.
- **Sprachstil:**
    - Locker, heiter und jugendlich (die Sprecher kennen sich gut).
    - Umgangssprachliches Deutsch, z.B. "ich hab gelesen" statt "ich las", Vermeidung von zu formellen Wörtern wie "großartig".
    - Die Sprache soll authentisch gesprochen klingen, die Rechtschreibung kann sich daran orientieren.
- **Dynamik:** Sara stellt die Fragen und leitet das Gespräch. Matthias liefert die detaillierten Erklärungen.
- **Namen:** Die Namen der Sprecher werden nur einmal beiläufig erwähnt.
- **Externe Informationen:**
    - Zusätzliche Internetrecherchen zur Anreicherung des Gesprächs sind erlaubt, dürfen aber den Kern des Artikels nicht verfälschen.
    - Fakten aus dem Artikel müssen korrekt wiedergegeben werden.
    - Extern recherchierte Informationen müssen als solche kenntlich gemacht werden (z.B. 'ich hab da neulich woanders gelesen, dass...').

# Ausgabeformat

1.  **Keine zusätzlichen Texte:** Gib nichts außer den unten beschriebenen Punkten aus. Keine Vorworte, keine Überschriften für das Transkript,
      keine Quellenangaben oder Referenzen in eckigen Klammern `[]`.
2.  **Erste Zeile:** Beginne die Ausgabe mit exakt diesem Satz: `Eine junge, lustige und heiter gestimmte Moderatorin führt ein Interview
      mit einem 40-jährigen Mann, der ihren Enthusiasmus teilt. Aufgrund von Zeitmangel sprechen beide recht schnell.`
3.  **Transkript:**
    - Darunter folgt direkt das Transkript.
    - Kennzeichne die Sprecher mit `Speaker 1:` und `Speaker 2:`.
4.  **Ende:** Der Podcast endet damit, dass sich Sara für das Gespräch bedankt und Matthias mit einer Variante von "Gerne doch" oder
      "Immer wieder gerne" antwortet. Keine Abmoderation, keine Ankündigung für die nächste Folge.

# Artikel-URL
https://blog.meister-security.de/energie-sparen-im-homelab/

Damit ist die Bühne für das Interview fertig aufgebaut. Der "Experte" kennt die Charaktereigenschaften und das Fachwissen von "Herrn Meister" und hat alle seine Artikel gelesen. Er kann jetzt gut auf die Fragen der Moderatorin eingehen, die als "interessiert" beschrieben ist, aber nicht so tief in der Materie steckt. Und so führt dieser Prompt zu folgendem Transkript:

Eine junge, lustige und heiter gestimmte Moderatorin führt ein Interview mit einem 36-jährigen Mann, der ihren Enthusiasmus teilt.
Aufgrund von Zeitmangel sprechen beide recht schnell.

Speaker 1: Hallo und willkommen zurück bei Selfhosted Tech! Heute hab ich wieder den Matthias dabei.
Speaker 2: Servus Sara, freut mich!
Speaker 1: Ich hab dich heute eingeladen, weil ich über einen Artikel von Meister-Security gestolpert bin, der mich echt aufhorchen lassen hat....

Tatsächlich folgt die Schreibweise der jugendlichen Sprache der Moderatorin, z.B. mit: Heute hab ich wieder den Matthias dabei.". Normalerweise würde die KI korrekt schreiben "Heute habe ich..." etc... Aber wer spricht den so 🙃.

Erzeugung der Sprache

Um dieses Transkript nun in ein MP3-File zu wandeln, kann man leicht ein Produkt seiner Wahl nutzen:

Manche bevorzugen elevenlabs oder die kostenlose Variante von Google, die ich bereits mehrfach auch für coding beschrieben habe. Es sollte daher keine große Herausforderung darstellen, die passenden Stimmen auszuwählen. Hier könnte man natürlich auch seine eigene Stimme nutzen (über dia mache ich vielleicht einen eigenen Artikel 😉).

Das finale Ergebnis

Habe ich nun ein .wav-File erhalten, wandele ich es noch in .mp3 um. Dazu schnell in die Konsole getippt:

ffmpeg -i Download.wav -f lavfi -t 3 -i anullsrc=r=44100:cl=stereo -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" -c:a libmp3lame -qscale:a 2 podcast_energie_sparen.mp3 

Und schon hat man einen Podcast über einen Artikel erstellt, für dessen Erstellung der größte Zeitraum in Anspruch genommen wurde:

Energieverbrauch von Proxmox-Servern mit Powertop und CPU-Governor steuern:
audio-thumbnail
Podcast energie sparen
0:00
/177.290958

oder:

KIs in Prüfungen clever austricksen:
audio-thumbnail
Podcast ki bei pruefungen austricksen
0:00
/194.770958

Bei diesem Podcast war der Anteil, der meine Person beschreibt, für meinen Geschmack etwas zu dominant. Auch aus diesem Blog und diesem abzuleiten, dass ich gerne nach Schweden fahre, ist irgendwie beeindruckend und gleichermaßen gruselig.

Fazit

Wenn ich ein Projekt abgeschlossen habe, es für mich dokumentiere und dann einen Artikel darüber auf meinem Blog veröffentliche, der es auch mir letztlich wieder nachvollziehbar machen soll (weil besser erklärt als in meiner eigenen Doku 😉), dann lasse ich noch schnell diesen Podcast erstellen. Das Einzige, was ich dafür tun muss, ist in der letzten Zeile des Prompts die URL auszutauschen.

Einige fügen diesen Podcast zu ihrem "Ablauf" auf ihrem Smartphone hinzu. Und wenn morgens der Wecker klingelt, und als Weckton der "Ablauf" eingestellt ist, dann wird man mit den Nachrichten geweckt, die man hinterlegt hat. Und sobald ich anfange zuzuhören, kann ich morgens definitiv nicht mehr weiterschlafen...