malahov.io

Ich habe mir ein Sprachjournal in Telegram gebaut

Zwei schlaflose Nächte — und mein Telegram-Bot nimmt Sprachnotizen entgegen, legt die Dateien im Speicher ab und transkribiert sie zu Text. Wozu ich das brauche — habe ich direkt hineingesprochen.

Von Georg Malahov

Dezember, ein Uhr nachts, die zweite schlaflose Nacht in Folge, aber ich habe es fertig: Der Bot läuft. Die Idee ist simpel — Tagebuch führen, aber mit der Stimme. Nicht abends an der Tastatur sitzen, sondern über den Tag verteilt Notizen in Telegram einsprechen, wie Sprachnachrichten an einen Freund. Nur dass am anderen Ende kein Freund sitzt, sondern mein eigener Bot, der alles entgegennimmt, ablegt und transkribiert.

Der Plan reicht über die Aufnahmen selbst hinaus. Wenn ich eine Weile lang regelmäßig einspreche, was gerade passiert, sammelt sich Material an, mit dem sich die gelebten Tage auswerten lassen — und das Ganze lässt sich in eine einzige Oberfläche gießen. Die Aufnahmen sind nur der erste Teil. Der zweite, der spannendste, beginnt, wenn es viele davon gibt.

Innen drin ist noch alles geradlinig. Ich schicke dem Bot eine Nachricht — er lädt die Datei herunter, legt sie in S3 ab, dem Objektspeicher für Dateien in der Cloud, und die Notiz selbst landet in Strapi. Strapi ist ein Open-Source-Content-Management-System: Datenbank, Admin-Oberfläche und API sind von Haus aus dabei, ich musste also kein eigenes Backend für die Notizen von Grund auf schreiben. Der Bot nimmt alle Nachrichtentypen an: Sprachnachrichten, Videos — daraus wird die Audiospur extrahiert —, Bilder, gewöhnlichen Text. Schicke ich dieselbe Datei noch einmal, erkennt er das und verarbeitet sie nicht neu, und bearbeite ich eine Nachricht in Telegram, wird die bestehende Notiz aktualisiert, ohne Duplikat. Der erste Grenzfall hat sich auch schon gezeigt: Beim Bearbeiten einer Sprach- oder Videonachricht schickt Telegram keine neue Datei, sondern eine Bildunterschrift dazu — die speichere ich als eigenes Attribut an derselben Notiz.

Eine Woche zuvor, der erste Prototyp-Test: Sprachnotiz raus — Transkript zurück

Über den Zugriff musste ich auch nachdenken: Ein Telegram-Bot steht standardmäßig jedem offen, der ihn findet. Deshalb wird ein neuer Nutzer bei seiner ersten Nachricht automatisch angelegt, aber im gesperrten Zustand — solange ich ihn nicht von Hand freischalte, redet der Bot nicht mit ihm.

Über Nacht haben sich auch Gedanken für später angesammelt. Nach dem Upload zu S3 bleiben die Dateien im temporären Ordner des Containers liegen — die muss ich sofort löschen, sonst häuft ein Bot, der ohne Updates läuft, still und leise Müll an. Und ich will mir die API von Deepgram ansehen — das ist ein Dienst zur Spracherkennung: Mich interessiert, ob er aus einer Aufnahme nicht nur die Wörter herausholen kann, sondern auch die Geräusche selbst — Lachen, Verkehrslärm. Solche Markierungen an den Notizen wären eine großartige Ergänzung.

Die Notiz, dass der Bot fertig ist, habe ich in ihn selbst eingesprochen — und bin schlafen gegangen, während sie noch verarbeitet wurde. Der Plan ist jetzt: eine Woche lang nichts an ihm anfassen, einfach jeden Tag aufnehmen und echte Notizen ansammeln. Und dann den zweiten Teil angehen — die Auswertung der Tage und eine gemeinsame Oberfläche über allem, was zusammenkommt.