Skip to content
horkahPublic

About

Personalisierte Spracherkennung für Menschen, an denen Standardmodelle scheitern: Dialekt, starker Akzent, Dysarthrie. wortlaut sammelt Sprachproben, feintuned daraus ein eigenes Modell und macht Diktieren möglich — vorlesen, danebengegangene Stellen antippen, neu einsprechen. FastAPI + Svelte, selbst hostbar, DSGVO-fest.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

wortlaut

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.


Das Problem

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.


Was wortlaut tut

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.


Warum es funktioniert

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.


Ausprobieren

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 :5173

Im 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 training

Ein 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

Weiterlesen

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

Lizenz

MIT. Whisper steht ebenfalls unter MIT.

About

Personalisierte Spracherkennung für Menschen, an denen Standardmodelle scheitern: Dialekt, starker Akzent, Dysarthrie. wortlaut sammelt Sprachproben, feintuned daraus ein eigenes Modell und macht Diktieren möglich — vorlesen, danebengegangene Stellen antippen, neu einsprechen. FastAPI + Svelte, selbst hostbar, DSGVO-fest.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages