Nach 1.2.0 kamen zwei Beschwerden immer wieder: „Den Nachnamen meiner Kollegin schreibt es jedes einzelne Mal falsch" und „Enhance ist entweder an oder aus — ich will nicht immer dieselbe Nachbearbeitung."

1.3.0 ist ab heute verfügbar. Es löst beides und kümmert sich um das andere wiederkehrende Ärgernis: Meeting-Transkripte, in denen jede Aussage der Gegenseite doppelt auftaucht, weil du keine Kopfhörer getragen hast.

Das hat sich geändert.

Eigenes Vokabular

Jede Spracherkennung hat eine Menge Wörter, die sie ausgerechnet bei dir zuverlässig falsch macht — einen Nachnamen, einen Produktnamen, ein internes Kürzel, den Namen des Tools, das du vierzig Mal am Tag erwähnst. Parakeet hat noch nie von deinem Startup gehört. „Claude Code" kommt als „clod code" zurück, bis du es nicht mehr bemerkst und es einfach jedes Mal von Hand korrigierst.

In den Einstellungen gibt es jetzt einen Bereich Vocabulary. Jede Regel ist ein Paar: was die Erkennung produziert, und was dort hätte stehen sollen. clod code → Claude Code. kubernets → Kubernetes. Die richtige Schreibweise eines Namens statt dem, was das Modell gehört hat.

Die Details, die in der Praxis zählen:

  • Standardmäßig Ganzwort-Abgleich, damit eine Regel für cat niemals die Mitte von „category" umschreibt. Für Teilstring-Korrekturen abschaltbar.
  • Standardmäßig ohne Groß-/Kleinschreibung, mit einem Schalter pro Regel, wenn API nur zu API passen soll.
  • Ein Schalter pro Regel, sodass du eine Regel parken kannst, ohne sie zu löschen.
  • Mehrwort-Phrasen funktionieren — die linke Seite muss kein einzelnes Token sein.

Die Regeln greifen an drei Stellen, nicht an einer. Deine Begriffe gehen vor der Transkription als Biasing-Hinweis an die Erkennung, werden danach als Ersetzungen auf das Rohtranskript angewendet und landen im LLM-Prompt als „exakt beibehalten"-Anweisung — damit der Nachbearbeitungsschritt die Schreibweise, die du gerade korrigiert hast, nicht stillschweigend wieder umschreibt. Genau daran scheiterte die frühe, naive Version dieses Features: einen Namen zu korrigieren und ihn dann von Enhance zurückparaphrasieren zu lassen, ist schlimmer, als ihn gar nicht zu korrigieren.

Wenn du in Coding-Agents diktierst, richte dieses Feature zuerst ein. Zehn Regeln für die Eigennamen deines Stacks nehmen dir den Großteil der Handarbeit ab.

Diktiermodi ersetzen den Enhance-Schalter

Enhance war bisher eine Checkbox: Text aufräumen oder nicht. Das ist der richtige Standard und die falsche Obergrenze — derselbe gesprochene Absatz sollte je nach Ziel anders herauskommen.

1.3.0 ersetzt den Schalter durch eine Modus-Auswahl:

  • Raw — fügt exakt das ein, was du gesagt hast, ohne LLM-Durchgang. Der schnellste Weg; Live-Übersetzung funktioniert hier weiterhin.
  • Cleanup — Grammatik, Zeichensetzung, Füllwörter entfernt, Wortwahl erhalten. Das alte Enhance-Verhalten und weiterhin der Standard.
  • Email — formt das Diktat zu einer strukturierten, professionellen E-Mail, ohne eine Betreffzeile oder Grußformel zu erfinden, die du nicht gesprochen hast. Wie sich das liest, steht in E-Mails auf dem Mac diktieren.
  • Message — knappe, lockere Chat-Nachricht.
  • Bullets — in gruppierte Stichpunkte umorganisiert.
  • Formal — geschliffener, förmlicher Ton.
  • Custom — deine eigene Anweisung, in den Einstellungen gespeichert und auf jedes Diktat angewendet.

Custom ist der interessante Modus. Es ist ein Freitext-Prompt, also sind „schreibe immer in britischem Englisch und benutze niemals Gedankenstriche" oder „übersetze ins Spanische und bleib unter drei Sätzen" gültige Modi. Alles läuft weiterhin lokal über das Modell auf dem Gerät.

In allen Modi sind Zahlen, Code-Bezeichner, URLs, Dateipfade, Text in Anführungszeichen und deine Vokabularbegriffe davor geschützt, umgeschrieben zu werden. Die Umformung soll die Prosa ändern, nicht die tragenden Token darin.

Meetings über Lautsprecher: das Problem der doppelten Zeilen

Wenn du ohne Kopfhörer telefonierst, kommen die entfernten Teilnehmer aus dem Mac-Lautsprecher und direkt wieder in dein Mikrofon. Vext nimmt Mikrofon und Systemaudio als getrennte Streams auf, also wird derselbe Satz zweimal transkribiert — einmal sauber aus dem Systemstream, einmal schlecht aus dem Mikrofon — und im Transkript sieht es so aus, als hättest du alles wiederholt, was dein Gegenüber gerade gesagt hat.

Wir haben zweimal versucht, das in der Audiodomäne zu lösen. Erst mit einem DTLN-Echokompensator auf CoreML, dann mit Apples eigenem Voice Processing I/O. Beides funktioniert, und beides wurde entfernt: VPIO verändert den gemeinsamen Mikrofonzustand, sodass automatische Verstärkungsregelung und Rauschunterdrückung in jede andere App durchschlagen, die dasselbe Mikrofon liest — deine Stimme wird in Zoom schlechter, während Vext aufnimmt. Kein akzeptabler Tausch.

Die Version, die ausgeliefert wurde, arbeitet stattdessen auf dem Transkript. Echo-Audio ist so verzerrt, dass der Stimmabdruck-Abgleich scheitert, aber es sagt dieselben Wörter zur selben Zeit, und beide Streams teilen sich eine Meeting-Uhr. Der Deduplikator gleicht also Text gegen Zeit ab: ein Mikrofon-Chunk, dessen Token größtenteils in einem System-Chunk innerhalb eines Zwei-Sekunden-Fensters enthalten sind, ist ein Echo und wird verworfen. Ein zweiter Durchgang führt die winzigen Fragmente desselben Sprechers zusammen, die Wortgrenzen-Schnitte hinterlassen.

Zusätzlich nutzt der Offline-Verfeinerungsdurchgang jetzt die Stimm-Embeddings der entfernten Sprecher, um übergesprochenes Audio zu erkennen und zu entfernen, mit Überlappungserkennung für das, was Ähnlichkeit allein nicht findet.

Unterm Strich: Ein Zoom- oder Meet-Call über Laptop-Lautsprecher liefert jetzt ein Transkript nahe an dem, was du mit Kopfhörern bekämst. Kopfhörer sind immer noch besser. Sie sind nur nicht mehr Pflicht.

Sprechertrennung auf Wortebene

Verwandt dazu — und die strukturelle Ursache einer ganzen Klasse von Transkript-Merkwürdigkeiten.

Die Sprachaktivitätserkennung schneidet Audio in Chunks. Wenn zwei Personen schnell abwechseln, kann ein einzelner Chunk drei oder vier Sprecherwechsel enthalten, und das Ganze wurde als ein Block unter einem Label transkribiert. Der Offline-Durchgang korrigierte die Zuordnung im Nachhinein, aber der verschmolzene Text blieb verschmolzen.

1.3.0 schneidet auf Token-Ebene. Jedes erkannte Wort trägt einen Zeitstempel, die Diarisierungs-Timeline weiß, wer in diesem Moment gesprochen hat, und der Chunk wird in Läufe pro Sprecher zerlegt, bevor er überhaupt im Transkript landet — mit Übernahme des vorherigen Labels für Wörter, die die Timeline nicht abdeckt. Abwechselnde Sprecher erscheinen als getrennte Zeilen, während das Meeting noch läuft.

Sprechererkennung, die nicht kollabiert

Drei Korrekturen an der Sprecheridentifikation, alle aus echten Aufnahmen, die schiefgingen:

Eins-zu-eins-Zuordnung. Die Zuordnung von Clustern zu Profilen war gierig, sodass zwei verschiedene Personen zum selben bekannten Sprecher passen und zu einer Identität verschmelzen konnten. Es ist jetzt eine eindeutige Abbildung — ein Cluster, ein Profil.

Stabile Stimmprofile. Embeddings werden L2-normalisiert und per exponentiell gleitendem Mittel mit neuen Samples verschmolzen, statt überschrieben zu werden. Profile werden mit jedem Meeting besser, statt zur letzten Aufnahme hin abzudriften.

Ein Kollaps-Schutz. Ein Meeting mit fünf Personen kam aus dem Offline-Durchgang als „Ich" plus eine weitere Person zurück: Der Offline-Diarisierer unterclusterte einen Stream mit 590 Segmenten zu einem einzigen Cluster, und weil dieser Durchgang maßgeblich ist, löschte er vier Sprecher, die der Live-Durchgang korrekt getrennt hatte. Wenn der Offline-Durchgang für einen Stream ein Cluster oder weniger liefert, während der Live-Durchgang zwei oder mehr Sprecher etabliert hat, bleiben jetzt die Live-Labels erhalten. Zu fein aufgeteilte Sprecher lassen sich im Speakers-Tab zusammenführen; Sprecher, die ein maßgeblicher Durchgang löscht, sind für immer weg.

Hotkeys, neu gebaut

Das Hotkey-System wurde von der Speicherschicht aufwärts neu geschrieben. Fünf Aktionen haben jetzt unabhängige Belegungen: Push-to-Talk-Diktat, freihändiges Diktieren, Notizen, Meetings und Screenshots.

Eine bereits vergebene Kombination wird erkannt und aufgelöst, statt stillschweigend zwei Aktionen auf eine Taste zu legen. Jede Belegung lässt sich mit der Entf-Taste oder einem Button löschen, und der Recorder gibt echtes Feedback, während er aufzeichnet. Der alte Manager mit seinen verstreuten AppStorage-Properties und manueller Dekodierung ist verschwunden.

Deutsch und Niederländisch

Die Oberfläche gibt es jetzt in sieben Sprachen: Englisch, Spanisch, Deutsch, Niederländisch, Russisch, Hindi und Thai — plus Auto, das der macOS-Systemsprache folgt. Umschalten unter Einstellungen → Allgemein; wirkt sofort, kein Neustart nötig.

Design: Liquid Glass auf macOS 26

Auf macOS 26 Tahoe nutzen Onboarding, der Willkommens-Guide, der Lizenzbildschirm, die Modell-Ladeansicht und die Aufnahme-Pille native Liquid-Glass-Oberflächen mit adaptiver Tönung. Auf älteren macOS-Versionen fällt alles auf die bisherigen Materialien zurück — für dich ändert sich nichts.

Animationskurven sind jetzt gemeinsame Primitive statt Konstanten pro View, sodass sich Übergänge in der ganzen App konsistent anfühlen, und die Aufnahmeindikatoren respektieren die Systemeinstellung Bewegung reduzieren.

Stabilität und Datensicherheit

Die unspektakuläre Hälfte des Releases:

  • Abgebrochene Transkriptionsjobs konnten einen Kern mit 100 % CPU beschäftigen. Behoben.
  • Das Bearbeiten eines Meeting-Titels oder Transkripts während der Hintergrund-Finalisierung konnte deine Änderung stillschweigend zurücksetzen. Schreibvorgänge sind jetzt partielle Updates, die vom Nutzer bearbeitbare Felder nicht überschreiben.
  • Die Textverarbeitung konnte beim Entfernen von Füllwörtern legitimen Transkripttext verstümmeln — Tokens mit Bindestrich und Satzzeichen sind jetzt geschützt.
  • Die Datenbank löscht sich nicht mehr selbst bei einer Schemaänderung. Dieser Pfad konnte beim Update die Meeting-Historie zerstören; er ist deaktiviert.
  • Abstürze durch ungültige VAD-Bereiche und ein Race Condition beim Pegel sind behoben.
  • Das Downsampling des Systemaudios nutzt AVAudioConverter mit korrektem Anti-Aliasing statt naiver linearer Interpolation — messbar sauberere Eingabe für die Erkennung.
  • Die Zwischenablage bleibt beim Einfügen von Text und Bildern erhalten.
  • Die Audio-Engine wird erst beim tatsächlichen Aufnahmestart allokiert, sodass ein untätiges Vext das Mikrofon nicht mehr belegt.
  • Meeting-Titel und laufende Transkriptionen werden vor dem Beenden der App gesichert.
  • Das Löschen eines Sprechers fragt jetzt nach.

Update

brew upgrade muvon/tap/vext

Oder Vext 1.3.0 direkt herunterladen. Deine Meetings, Sprecherprofile und Einstellungen werden übernommen — der Enhance-Schalter wird zum Cleanup-Modus, und deine vorhandenen Hotkeys migrieren in die neuen Belegungen.

Alles läuft weiterhin vollständig auf deinem Mac: keine Cloud, kein Konto, kein Abo.

Vext 1.3.0 herunterladen