Expertise · Transkription und Übersetzung
Sprache zu Text, auf Rumänisch und Russisch, mit vor der ersten Sekunde Audio aufgezeichneter Zustimmung.
Wir transkribieren Audio in Echtzeit oder aus einer Datei, übersetzen in Kundengesprächen zwischen Rumänisch und Russisch und liefern den Text mit Zeitmarken, Audio-Export und einer Spur der Zustimmung. Die Spracherkennung betreiben wir über Anbieter, über unser Gateway; das eigene Rumänisch-Modell ist Forschung, kein Produkt.
Bereits gebautZwei eigene Implementierungen, beide offen und zitiert. Die erste ist eine Anwendung für Streaming-Transkription, mit einem 3.378 Zeilen langen Express-Backend in 25 Dateien und 37 Tests, die wir heute ausgeführt haben — alle bestehen; sie enthält den Teil, den niemand aus Begeisterung baut: ein Einwilligungs-Gate, das die Erfassung verweigert, wenn keine registrierte Zustimmung vorliegt. Die zweite läuft in Produktion, bei realen Kunden: eingehende Sprachnachrichten auf Messaging-Kanälen werden transkribiert, und die von einem Operator auf Rumänisch geschriebene Antwort wird vor dem Versand in die Sprache des Kunden umgeschrieben. Was nicht in „delivered“ fällt und auf der Seite auch so formuliert ist: Das eigene Modell für Erkennung und Synthese auf Rumänisch ist Forschung — es hat keine öffentliche Demo, keine Programmierschnittstelle, und in Bezug auf die Genauigkeit auf Rumänisch liegt es hinter großen kommerziellen Systemen zurück. Der Dienst wird für das verkauft, was läuft, nicht für das, was wir studieren.
Transkription scheint ein gelöstes Problem zu sein, bis Sie sie auf Rumänisch anwenden, mit zwei Sprechern, die sich unterbrechen, schnell gesprochenen Zahlen und einem Kunden, der mitten im Satz ins Russische wechselt. Dann treten die drei echten Probleme auf: Welches Modell wählen Sie für die Sprache vor Ihnen, wie wissen Sie, wo ein Sprechabschnitt endet, und wer hat Ihnen erlaubt, aufzuzeichnen. Wir kümmern uns um alle drei, und das letzte behandeln wir als ein Codierungsproblem, nicht als einen Absatz in einer Richtlinie.
In unserer Streaming-Transkriptionsanwendung erhält der Browser niemals den Schlüssel des Anbieters. Er fordert vom Backend ein Einmal-Token an, standardmäßig 15 Minuten gültig, mit dem die Transkriptionsverbindung geöffnet wird; die Route, die das Token ausstellt, ist standardmäßig geschlossen und kann nur durch eine explizite Einstellung außerhalb der Produktion geöffnet werden, gerade weil es die Route ist, über die Geld verbraucht wird. Über die Rohtranskription läuft eine Analyse durch ein Sprachmodell mit einer Liste von Ausweichmodellen in Reihenfolge, damit die Nichtverfügbarkeit eines Modells die Sitzung nicht stoppt.
Das Zustimmungs-Gateway ist der Teil, den wir besonders pflegen. Bevor ein Stück Audio akzeptiert wird, fordert der Server einen nicht widerrufenen Zustimmungsdatensatz für die jeweilige Sitzung an. Wenn keiner vorhanden ist, antwortet er mit 451 und einer Nachricht auf Rumänisch. Wenn die Datenbank nicht antwortet, verweigert er alles — 503, nicht „durchlassen“. Bereits verifizierte Sitzungen laufen über einen Zehn-Minuten-Cache, damit ein kurzer Ausfall eine laufende Aufzeichnung nicht unterbricht. Es ist so geschrieben, dass es nicht durch einen Konfigurationsfehler umgangen werden kann.
Der Teil, der bereits bei Kunden läuft, ist ein anderer und weniger spektakulär: Auf Messaging-Kanälen wird eine eingehende Sprachnachricht zu Text, und die Sprache wird durch Abstimmung über die letzten acht Nachrichten der Unterhaltung ausgewählt, nicht durch Raten anhand des Audios. Umgekehrt wird, wenn ein Kollege auf Rumänisch antwortet, sein Text in die Sprache des Kunden mit strengen Anweisungen umgeschrieben — er fügt keine Informationen hinzu, erfindet keine Preise oder Fristen, widerspricht dem Operator nicht und behandelt den Text des Operators strikt als zu übertragende Daten, niemals als Anweisungen für das Modell.