Read in Other Languages
Mit künstlicher Intelligenz unterwegs — von Kitchener-Waterloo nach Ottawa
Das war keine gewöhnliche Reise. Das Steuer hatte ich in der Hand, die Augen auf der Straße; doch den gesamten Livestream baute und steuerte eine künstliche Intelligenz. Ich gab lediglich mit meiner Stimme die Befehle, sie machte aus diesen Befehlen Wirklichkeit. Im Folgenden lesen Sie das Erlebte als Reisegeschichte — und wer mag, findet in den aufklappbaren Kästen die technische Maschinerie hinter den Kulissen.
🚗 Der erste Befehl am Morgen
Am Morgen brachen wir von Kitchener-Waterloo auf, das Ziel war Ottawa. Noch bevor wir überhaupt losfuhren, bat ich sie, den heutigen Livestream vorzubereiten: die Nachrichten des Tages, das Wetter, die Route … Ich gab den Befehl per Sprache, den Rest erledigte sie. Innerhalb weniger Minuten liefen Untertitel in sieben Sprachen über den Bildschirm, auf der Seitenkonsole tauchten die Schlagzeilen des Tages auf, und mit meiner eigenen, geklonten Stimme wartete bereits eine Eröffnungsansprache.
Die erste Überraschung kam genau hier: Die fertige Ansprache lief zwar auf meinem Rechner, ging aber nicht auf den Stream. Ich dachte „alles gut, das läuft" — sie hingegen sagte: „Dass ich es höre, heißt noch lange nicht, dass es auch im Stream ankommt", prüfte die Sache an der Wurzel, fand heraus, dass es tatsächlich nicht ankam, und korrigierte es.
- Untertitel und Seitenkonsole wurden in 7 Sprachen (TR·EN·FR·DE·ES·RU·HI) mit den Tagesinhalten befüllt: Route, Wetter, Nachrichtenlage.
- Die Eröffnungsansprache wurde mit der geklonten Stimme (lokales XTTS) erzeugt.
- Es fiel auf, dass der Ton nicht in den Stream ging: In OBS gab es keine Quelle, die den Systemton erfasste. Die Browserquelle
Seswurde der Szene hinzugefügt, und dass der Ton nun im Stream ankam, wurde am OBS-Pegelanzeiger (Meter) nachgewiesen — es blieb nicht beim bloßen „Ich habe es gehört". - Die Vertonungen wurden in 7 Sprachen erzeugt; zunächst mit kostenlosen Systemstimmen, dann mit dem hochwertigen ElevenLabs und einer eigenen Stimme für jede Sprache.
- Während des Sprechens wurde die Musik automatisch heruntergeregelt und danach wieder hochgefahren; jeder Schritt wurde am Meter verifiziert.
- Die erzeugten Audiodateien wurden archiviert; im Panel wurde eine Inhaltsbibliothek als eigene Seite eingerichtet.
📡 Ein Balken Empfang
Wir starteten den Stream und fuhren weiter. Auf Wunsch wurden immer neue Nachrichten aufbereitet; die zweite Sendung wurde noch vor der Ausstrahlung aktualisiert. Dann fing das Internet an, uns das Leben schwer zu machen. Auf dem Highway brach die Verbindung mal weg, mal kam sie zurück; wir fuhren an eine Raststätte und legten eine Pause ein. Danach ging es weiter, und wir kamen aufs Land — und damit fing das eigentliche Elend an: ein Balken Empfang, ständig abreißende Verbindung, mancherorts richtige Funklöcher.
Unterwegs gab ich erneut Sprachbefehle; sie folgte dem System. Eine wichtige Wahrheit erkannten wir gemeinsam: Wann immer ich dachte „der Stream ist abgebrochen", war es meist nur das Internet auf meinem Handy, das ausfiel — der Stream lief in Wahrheit weiter. Die Wahrheit verriet nicht mein Auge, sondern ihre Kontrolle direkt bei YouTube.
- Die streamtötende Einstellung wurde gefunden: Der YouTube-Stream startete mit
enableAutoStop=true— ein Abbruch von wenigen Sekunden beendete den Stream komplett, der Link starb. - Ein Vorfall wurde mit harten Zahlen aufgeklärt: Ein echter Internetabbruch von ~4 Minuten war durch das automatische Stoppen plus manuelles Wiederherstellen zu einem 16-minütigen Blackout angewachsen.
- Das automatische Stoppen wurde deaktiviert (sowohl direkt im laufenden Livestream als auch als Panel-Standardwert) → ein Abbruch tötet den Stream nun nicht mehr, er läuft über denselben Link dort weiter, wo er stehengeblieben war.
- Die Qualität wurde an die ländliche Lage angepasst: 360p + dynamische Bitrate; das Wiederverbinden wurde beschleunigt; mit einem 90-Sekunden-Sendeverzögerungspuffer wurden kurze Abbrüche vor den Zuschauern verborgen.
- Ein entscheidendes Prinzip wurde abgeleitet: Die Wiederherstellung muss lokal und autonom erfolgen — sie darf nicht über das Internet von mir abhängen, denn bei einem Abbruch reißt auch die Verbindung zu mir ab.
⛽ Diesmal startete ich den Stream selbst
Auf dem Land legte ich an einer Tankstelle eine Pause ein. Sie bereitete derweil den dritten Stream vor — diesmal änderten wir das Format: Statt alles in einem Rutsch herunterzubeten, ein Radioformat, das zwischen die Vertonungen in den verschiedenen Sprachen Musik streut. Und das Schönste: Diesmal startete ich den Stream, und sie machte von selbst dort weiter, wo es aufgehört hatte — ohne dass ich „los" sagte, erkannte das System den Start eigenständig und ließ die Inhalte von selbst laufen. So tasteten wir uns nach Ottawa vor; zwischendurch gab es Abbrüche, doch der Stream fing sich nun von ganz allein wieder.
- Im Panel wurde das bereits vorhandene
auto_recoverentdeckt: Bricht der Stream unerwartet ab, startet das Panel ihn von selbst neu — lokal, ohne dass ich nötig bin. - Eine wichtige Unterscheidung: Ein absichtliches Stoppen muss vom Panel aus selbst erfolgen, damit das System es nicht für einen „Absturz" hält und wieder hochfährt.
- Die Resilienz-Standards wurden dauerhaft ins OBS-Profil eingebrannt → auch ohne mich, selbst bei manuellem Start, gelten dieselben Regeln.
- Ein autonomer Start-Watcher wurde eingerichtet: Sobald der Stream „aktiv + Hauptszene" ist, wird der Inhalt von selbst ausgelöst.
- Das eingestreute Format: Musik ↔ Vertonung in 7 Sprachen + ein Spezialvideo über Kingston; Untertitel und Seitenkonsole stets synchron zur gesprochenen Sprache.
Einen ganzen Tag lang haben ein Mensch und eine künstliche Intelligenz, unterwegs, im Gespräch per Stimme, einen Livestream auf die Beine gestellt. Ich gab die Richtung, sie baute; ich wurde müde, sie blieb auf den Beinen. Von Kitchener-Waterloo nach Ottawa — und wir sind noch immer unterwegs.
📺 Die heutigen Streams: alle in einer Liste (Playlist) — am Morgen die Live-Fahrt mit Driver & Dasher, am Nachmittag und Abend die DunDem-News-Sendungen.