Translation - Sprache und Text übersetzen

"Microsoft Translation" ist eine interessante Technik um Kommunikation zwischen Menschen zu ermöglichen, die sich ansonsten aufgrund von Sprachbarrieren sonst nicht unterhalten können. Outlook, Skype, Skype for Business und Teams sind effektive Kommunikationsmittel, die Menschen nutzen. Diese Seite liefert Links und eine Beschreibung für maschinengestützte Übersetzungen im Umfeld von UC.

Was geht heute schon?

Die Besatzung von Raumschiff Enterprise hat schon immer einen ganz besonderen "Communicator", der in Windeseile die Sprache von fremden Rassen analysieren und übersetzen kann. Soweit sind wir noch nicht aber auch auf der Erde gibt es sehr viele Sprachen und auch wenn Englisch, Französisch, Spanisch und Deutsch wohl aufgrund der Kolonialzeit weit verbreitet sind und Chinesisch und Indisch natürlich nicht vergessen werden darf, wird es immer Menschen geben, die sich schwer tun. Da wäre eine Übersetzung immer noch besser als gar keine Kommunikation und wenn die Endstellen eh schon "Computer" sind (Mail und VoIP), dann sollte es doch möglich sein.

Und tatsächlich gibt es u.a. von Microsoft schon nutzbare Lösungen, wenn man nur mal genauer hinschaut.

Das sind aus meiner Sicht die ersten Vorboten einer interessanten Technik um die Kommunikation über Sprachbarrieren hinweg zu vereinfachen.

Wo ist die API ?

Die Microsoft Translator API ist aktuell keine Software, die Sie lokal installieren können, sondern eine REST-API in der Cloud. Das macht es für den Hersteller speziell in der Anfangszeit sehr einfach die Algorithmen dahinter laufend anzupassen und zu verbessern.

Nun ist Microsoft ja nicht stehen geblieben und da ClientAPI-Erweiterungen auf Mobilgeräten z.B.: nicht funktionieren, wäre eine Funktion auf dem Server ja wünschenswert und die APIs gibt es ja

Die Speech-API erwartet Audio „Stücke“ zum Übersetzen in Text per WebSocket und liefert die digitalisierte Info zurück. Damit können Sie also schon einmal Sprache in Text übersetzen. Dann fehlt nur noch ein Text zu Text-Umsetzer zwischen den Sprachen und am Ende eine Text2Speech Lösung. Die Konvertierung von Text in eine halbwegs natürlich Sprache würde ich aber als weitestgehend "gelöst" ansehen, wenn Sie Siri, Cortana, Alexa und Google anschauen. Selbst ein Windows PC bringt schon "Vorlese-Funktionen" mit und das SpeechAPI von Microsoft ist schon viele Jahre alt.

Insofern ist es nur eine Frage der Zeit, bis es weitere Anwendungen gibt, diese diese Technologien aus der Cloud nutzen.

In diesem Beispiel nutzt Tim Morgan die UCMA-Schnittstelle, um den Ton in eine WMA-Datei zu schreiben. Das kann UCMA sehr problemlos direkt machen. UCMA sperrt die Datei aber nicht und so kann ein zweiter Prozess die gleiche Datei gleich wieder hinterher lesen und die Daten an das Translator API senden. Das ist natürlich nur eine Beispielapplikation, die experimentell einen Eindruck vermitteln kann, was heute schon möglich ist. In einem kommerziellen Produkt wird man den Umweg über das Dateisystem natürlich eliminieren.

Über die Schnittstelle zum Translator Text API können Sie auch ein Modul in einen beliebigen Client einbauen, der Text von einer Sprache in die andere Sprache übersetzt.

Integration in Applikationen

Da gibt es so eine schöne API, die in der Cloud läuft und natürlich fangen nun bei dem ein oder anderen die Überlegungen, wie man das eigene Produkt damit verbessern kann. Wenn Sie zuerst einmal nur mit Texten hantieren, dann sind die üblichen APIs relativ schnell und einfach angesprochen. Texte liegen ja schon digital vor. Kniffliger wird es natürlich mit dem Thema "Sprache" und Töne. Die Speech2Text-API (Microsoft Translator Speech API, https://www.microsoft.com/en-us/translator/speech.aspx) erwartet einen "MediaStream" in entsprechenden Häppchen. Für einen Test reicht da eine Audio-Datei aber im echten Leben müssen Sie mit ihrer Software natürlich an den Audio-Datenstrom heran, was die Sache in mehrfacher Hinsicht anspruchsvoll macht:

  • Audio ist in der Regel Peer2Peer und SRTP verschlüsselt
    Zumindest in der Skype for Business-Welt versucht der Client zuerst eine direkte Verbindung zur Gegenstelle herzustellen oder notfalls über einen TURN-Server zu gehen. Die Audiodaten kommen also sicher nicht immer an der gleichen Stelle vorbei oder laufen über den Registrar. Das ist nur bei einer Konferenz der Fall, wenn alle Teilnehmer ihre RTP-Kommunikation mit der Konferenz-MCU aufbauen. Aber selbst dann ist es auf dem Kabel schwer etwas zu hören, wenn Skype for Business nutzt SRTP zum Verschlüsseln und auch die Vielzahl an Codecs und Optionen macht es sehr aufwändig hier anzugreifen.
    Wenn man also nicht in den ICE-Handshake eingreifen will, um Audio über ein eigenes Relay zu leiten und SRTP und Codecs zu beeinflussen, dann bleibt nur die Integration auf einem der Endpunkte. Auf einem Windows Desktop ist dies sicher einfacherer über z.B.: die Lync-COMAPI als auf einem Mobilclient oder gar Browser mit WebRTC
  • Latenzzeit muss „kurz“ sein.
    Der „Übersetzer“ kann also nicht den Satz abwarten, sondern muss möglichst früh schon mit der Übersetzung „anfangen“. Allerdings ist das in mehrfacher Hinsicht eine Herausforderung, da Unterschiedliche Sprachen einen abweichenden Satzaufbau haben und daher etwas gewartet werden muss. Da die API zudem aktuell nur "in der Cloud" bereit gestellt wird, müssen die RTP-Daten auch noch den Weg zum Service nehmen, ehe diese dort dann als Text und übersetzt wieder zurück kommen.

Ich bin sicher, dass die Lösungen und Techniken permanent besser werden aber bis es zu einem echten Simultandolmetscher ist der Weg noch steinig und weit. Bedenken Sie aber, dass dies in vielen Fällen aber nicht wirklich erforderlich ist. Allein eine "Textübersetzung" für Chats ist schon ein großer Gewinn und wenn Teilnehmer einer 1:! Kommunikation eben einige Sekunden auf die Übersetzung warten, dann kann man das vielleicht dennoch tolerieren. Zumindest wenn ansonsten gar keine Kommunikation möglich wäre. Für 1:N-Szenarien mit einer präsentierenden Person, deren Sprache dann als Untertitel in den verschiedenen Landessprachen etwas verzögert eingeblendet werden, ist diese Lösung auf jeden Fall schon heute ein Gewinn. Insofern sehe ich zwei Stellen um mit eigenen Lösungen anzusetzen:

  • Sie leiten die Sprache über ein Relay-System um, welches die Sprache über die Microsoft Cloud sendet und die Übersetzung weiter leitet
    Das wäre dann eine serverseitige Lösung. Für den „Weg“ der Sprache nicht immer optimal und der Anwender kann es kaum beeinflussen, ob er die Übersetzung will/braucht und der zentrale Prozess müsste die Quellsprache zuverlässig erkennen UND die Zielsprache kennen.
  • Sie erweitern den Client derart, dass er auf Anforderung durch den Anwender die Übersetzung aktiviert.
    Dieser Option gebe ich die besten Chancen was aber bedeutet, dass der Client angepasst werden muss. Der Anwender könnte aber hier sogar Einfluss auf die Übersetzung nehmen.

Aber der klassische „Raumschiff Enterprise Communicator“ wird noch etwas auf sich warten lassen.

Weitere Links