Eine Russisch-App für meinen Sohn
Er liest Kyrillisch. Was ihm oft fehlt: wie ein Wort klingt und was es bedeutet. Die App beantwortet genau diese zwei Fragen — und hört zu, wenn er nachspricht.
$ Keine Vokabellisten. Keine Punkte. Keine Konten.
$ Nur der Text, den er diese Woche aufhat.
Das Problem
Mein Sohn lernt Russisch in der Schule. Das Alphabet war der leichte Teil. Woran es hängt: Er sieht ein Wort und weiß nicht, wo die Betonung sitzt, wie es klingt und was es heißt. Im Russischen verändert die betonte Silbe den Klang des ganzen Wortes, und im Schulbuch stehen keine Betonungszeichen.
Die Lern-Apps, die es gibt, lösen ein anderes Problem. Sie bringen eigene Vokabellisten mit, Levels und eine Tagesserie. Davon brauchte er nichts. Er brauchte diesen Text, auf dieser Seite, bis morgen.
Die Lösung
Er fotografiert die Seite mit dem Handy. Claude liest den kyrillischen Text aus dem Foto, setzt die Betonungszeichen, schreibt die Lautschrift dazu und übersetzt — alles von Anfang an sichtbar, nichts muss aufgeklappt werden. Dann liest ElevenLabs den Text vor, auf Wunsch in 0,7-facher Geschwindigkeit. Er spricht nach, die Aufnahme geht an die Spracherkennung, und Claude markiert die Wörter, die nicht gestimmt haben, mit einem Hinweis in Sprache, die ein Schüler wirklich versteht.
- Foto bis 6 MB oder Text bis 4.000 Zeichen. Analyse in etwa 10 Sekunden.
- Vorlesen normal oder langsam (Faktor 0,7). Eine feste Stimme, keine Auswahl — eine Entscheidung weniger.
- Das Nachgesprochene wird transkribiert und Wort für Wort mit dem Original verglichen.
- Verlauf der letzten 60 Texte, einzeln löschbar, bleibt lokal im Handy. Kein Konto, keine Daten auf dem Server.
- Als PWA auf dem Startbildschirm installierbar. Sieht aus wie eine App, ist eine Webseite.
- Zwischenspeicher für Analysen und Audio: derselbe Text ein zweites Mal kostet nichts.
- Passwort-Login. Die API-Keys liegen nur auf dem Server, nie im Browser.
app.py# Mit Foto das Vision-Modell, ohne Foto das Textmodell
model = VISION_MODEL if img_bytes else TEXT_MODEL
# Identische Anfrage? Aus dem Zwischenspeicher, 0 Kosten
key = _hash(model.encode(), text.encode(), img_bytes, ANALYZE_SYSTEM.encode())
cached = CACHE_DIR / "analyze" / f"{key}.json"
if cached.exists():
return JSONResponse(json.loads(cached.read_text("utf-8")))
# Langsam heißt wirklich langsamer, nicht abgehackt
speed = SLOW_SPEED if body.slow else 1.0 # 0.7
stream = eleven().text_to_speech.convert(
voice_id=stimme, text=spoken, model_id=TTS_MODEL,
voice_settings={"stability": 0.5, "similarity_boost": 0.8, "speed": speed},
)
Stack
- Python
- FastAPI
- Claude Sonnet 5 (Text + Vision)
- ElevenLabs Flash v2.5 (Vorlesen)
- ElevenLabs Scribe v2 (Spracherkennung)
- JavaScript (kein Framework)
- PWA + Service Worker
- Railway
Das Ergebnis
An einem Abend gebaut, am selben Abend im Einsatz.
635 Zeilen Python, ein Frontend ohne Framework, 9 Commits. Laufende Kosten: 6 $ im Monat für die Stimme, dazu ein paar Cent pro Text für das Modell und das Hosting. Keine Lizenz, kein Abo, keine Werbung, keine Daten in der Cloud.
Meine Rolle
Konzept, Entwicklung, Deployment und die Anleitung, mit der sich die App ohne mich betreiben lässt.
Was ich gelernt habe
Der Wert steckte nicht in der Technik, sondern im Zuschnitt. Die Bausteine sind öffentlich und an einem Abend verdrahtet. Brauchbar macht die App alles, was nicht drin ist: keine Registrierung, kein Lernpfad, keine Auswahl aus 300 Stimmen. Jede Entscheidung, die ich vorher getroffen habe, ist eine, die er abends um acht nicht mehr treffen muss.
Vier fertig geplante Funktionen habe ich nicht gebaut. Gesprächsmodus, Rollenspiel mit mehreren Stimmen, Aussprachebewertung, Verlauf über Geräte hinweg. Alle sinnvoll, alle entworfen, keine gebaut — erst muss Version 1 eine Woche im Alltag überleben. Die häufigste Art, ein funktionierendes Werkzeug zu ruinieren, ist die zweite Version.
Spracherkennung hört, was gesagt wurde, nicht wie gut. Scribe transkribiert zuverlässig, aber ein falsch betontes Wort wird meist trotzdem richtig erkannt — der Fehler fällt also durch. Wer Aussprache wirklich bewerten will, braucht dafür ein eigenes Werkzeug. Das war die technisch wichtigste Erkenntnis für alles, was ich in dieser Richtung als Nächstes baue.
So eine App für Ihren Fall?
Ich baue Lern-Apps für einen klar umgrenzten Zweck und eine klar umgrenzte Gruppe.
Das Gerüst bleibt dasselbe: Text oder Foto rein, vorlesen, nachsprechen, Rückmeldung. Was sich ändert, ist der Zuschnitt — und der ist der ganze Punkt. Deutsch für Pflegekräfte mit den Sätzen, die auf der Station wirklich vorkommen. Aussprachetraining für einen Chor, mit dem Stück, das im Konzert dran ist. Sprechübungen für eine Logopädie-Praxis, mit den Lauten, an denen gerade gearbeitet wird.
Ich arbeite remote und das Ergebnis läuft im Browser — wo Sie sitzen, spielt also keine Rolle. Projektsprachen: Deutsch und Englisch.
- Gespräch, 30 Minuten. Wer übt, was genau, auf welchem Gerät. Danach sage ich, ob ich es für sinnvoll halte — auch wenn die Antwort nein ist.
- Prototyp innerhalb einer Woche. Läuft im Browser, auf dem Handy installierbar. Sie probieren ihn mit echten Inhalten aus, bevor Geld fließt.
- Festpreis, vorher vereinbart. Dazu die laufenden Kosten für Modell, Stimme und Hosting — einzeln aufgeschlüsselt und direkt an diese Anbieter gezahlt, nicht an mich.
- Der Code gehört Ihnen. Eigenes Repository, eigene Keys, eigenes Hosting. Kein Abo, aus dem man nicht herauskommt.