Spracherkennung, die diesen einen Menschen versteht.
Aus dem Laut wird das Wort, und zwar der Wortlaut: was die Person gesagt hat, nicht das, was ein Sprachmodell für plausibel hält.
Dieses Repository beschreibt nur den aktuellen Stand. Code, Kommentare, Doku und Oberfläche sagen, was gilt und warum - nie, wie es vorher war. Die Geschichte steht allein in der Commit-History. Ausgenommen sind datierte Berichte wie der Modellbericht, der Kernbericht, der Optionenbericht der Wirkungsbericht und die Durchsicht.
Diktieren funktioniert, für die meisten. Wer mit Dysarthrie spricht, nach einem Schlaganfall, mit Zerebralparese, Parkinson, Multipler Sklerose oder breitem Dialekt, erlebt anderes: Das Diktierfeld schreibt Unsinn, die Sprachassistentin schweigt. Die Modelle sind auf Millionen Stunden durchschnittlicher Sprache trainiert, und diese Stimme kommt darin nicht vor.
Oft können die Betroffenen auch schlecht schreiben. Ihnen fehlt damit ausgerechnet der Ausweg „Dann tippen Sie es halt".
Größere Allgemeinmodelle verschieben die Grenze nur. Was fehlt, ist ein Modell, das diese Person kennt.
wortlaut baut dieses Modell - aus etwa anderthalb Stunden Aufnahmen, auf einer einzelnen Grafikkarte. Drei Apps greifen ineinander:
| hören | Sprachproben sammeln | Ein kurzer Satz, eine Aufnahme, ein fertiges Paar aus Text und Ton. Wer nicht flüssig liest, lässt sich den Satz vorlesen und spricht ihn nach. |
| lernen | ein eigenes Modell trainieren | Feintuning von Whisper für genau diese Stimme, gemessen per sechsfacher Kreuzvalidierung und neben den unveränderten Grundmodellen in einer Tafel. |
| schreiben | diktieren | Ein großer Knopf: sprechen, zuhören, einen Abschnitt neu einsprechen, fertig. Kein Anmeldefeld. |
Jeder in schreiben bestätigte Text geht mit seinem Audio als Korrektur in den Korpus von hören zurück. Der Korpus wächst im Gebrauch, und das nächste Training nimmt ihn mit.
Jede Aufnahme ist von Haus aus ausgerichtet. Aufgenommen wird äußerungsweise. Forced Alignment, Segmentierung und Zeitmarken-Drift entfallen
- die Stellen, an denen Sprachdatensätze sonst unsauber werden.
Gemessen statt behauptet. Zu jeder Aufnahme steht die Vorlage daneben,
jede Aufnahme ist also eine Prüfaufgabe. Die Kreuzvalidierung misst jede
Aufnahme mit einem Modell, das sie nie gesehen hat; die eigenen Stände stehen
in derselben Tafel wie whisper-small, medium und large-v3, mit
Vertrauensbereichen. Ist das eigene Modell noch nicht besser als medium,
wird medium freigegeben.
Die Stimme bleibt im Haus. Aufnahmen einer Person mit Sprechstörung sind Gesundheitsdaten nach Art. 9 DSGVO. Erkennung, Training, Zeichenerkennung und Textquelle laufen auf der eigenen Maschine; Adapter für fremde Dienste sind Schalter mit lokaler Voreinstellung, und der Trainings-Container holt aus dem Netz nur die Grundmodelle - Aufnahmen verlassen die Maschine nicht.
Die Oberfläche ist für den gebaut, der sie braucht. Ein persönlicher Link statt einer Anmeldung, höchstens eine vierstellige PIN. Schrift, Kontrast und sogar die sichtbaren Reiter sind einstellbar - wer nur diktiert, sieht nur den Knopf. Erklärungen stehen nicht im Weg: Wer eine Überschrift antippt oder mit der Maus darauf verweilt, liest, wie der Abschnitt darunter gemeint ist.
Python 3.12 mit uv, Node 20 oder neuer und ffmpeg im Pfad. Ohne Grafikkarte läuft alles, nur langsamer.
cp .env.example .env
uv sync
make test # ohne GPU, ohne Netz, ohne Mikrofon
make dev APP=hoeren # Backend :8000, Oberfläche :5173Im Betrieb ein Container für alle drei Apps und, mit Karte, einer für das Training:
docker compose up -d
docker compose --profile training up -d trainingEin eigenes Modell von der Kommandozeile - LoRA auf whisper-large-v3,
zugeschnitten auf die Karte, die da ist (Genauigkeit, Stapel,
Gradientensparen; siehe Betrieb):
make train SPEAKER=spr_7f2a RECIPE=whisper_lora # beauftragen, zusehen, WER gegen das Grundmodell
make release JOB=job_01J8… # freigeben - „schreiben" diktiert damit| Der Entwurf | Grundentscheidungen, Aufbau, Nahtstellen, Technik |
| App „hören" | Sammeln, Zugänge, Aufsicht, Zuschnitt, Messwerte der Auswertung |
| App „lernen" | Kreuzvalidierung, Aufträge, Auswertung, Modelltafel, Freigabe |
| Das Trainingsverfahren | die Rechnung in Pseudocode und ihre Bausteine |
| App „schreiben" | Diktieren, Abschnitte, Postausgang |
| Konfiguration | jede Umgebungsvariable |
| Entwicklung | lokal starten, Trainer, Tests, Konventionen |
| Betrieb | Compose, Reverse Proxy, Sichern, Fehlersuche |
| Datenschutz | was gespeichert wird und wie es verschwindet |
| Manueller Test | der ganze Weg zum Durchklicken |
| Andere Sprachen | wortlaut in einer anderen Sprache (englisch) |
| Modellbericht | Vergleich aller Stände, Stand 26.09.2026 |
| Kernbericht | Kernauswahl gegen alle Aufnahmen, Stand 27.09.2026 |
| Optionenbericht | was die neuen Trainingsoptionen bringen, laufend ergänzt, Stand 28.09.2026 |
| Wirkungsbericht | Nutzen, Schaden und Kosten jeder Option über alle Läufe im Register, Datenmenge, Stand 02.10.2026 |
| Durchsicht | toter Code, Redundanz, veraltete Kommentare - Befunde mit Kennung, Stand 09.10.2026 |
MIT. Whisper steht ebenfalls unter MIT.