Speech to Text: Das bisschen Sprache kann so schwer nicht sein

Vermutlich haben alle in der IT irgendwann schon einmal den gut gemeinten Rat gehört, langweilige, zeitaufwendige und vor allem auch wiederkehrende Aufgaben einfach zu automatisieren und damit zu vereinfachen. In einem Gespräch unter Kollegen kommt uns schnell eben diese Idee in den Sinn, als wir unseren Arbeitsalltag diskutieren. Nervig erscheint uns vor allem das manuelle Transkribieren von Wortlaut-Interviews, die wir bisher selbst mit dem Headset auf dem Ohr in die Tastatur abtippen. Das muss doch mit moderner Technik auch anders gehen, denken wir uns - vielleicht etwas voreilig.
Die großen und weitreichenden Versprechen der modernen Machine-Learning-Modelle zur Sprachverarbeitung kommen da genau richtig und wir nehmen uns vor, sie zu testen und bei Erfolg in den Redaktionsalltag zu integrieren, hoffentlich zur Freude der Kollegen. Die Maßgabe für uns ist dabei neben der eigentlichen Qualität der Spracherkennung vor allem die Praktikabilität unseres Unterfangens.
Für einen kurzen Test wollen wir die Entwicklungsabteilung nicht unnötig belasten und dass die Redaktuere neben der eigentlichen Textarbeit noch groß programmieren müssen, sollte nicht Zweck unseres Experiments sein.
Entsprechend unbedarft gehen wir an die Aufgabe. Was kann schon so schwer daran sein, ein Speech-to-Text-System zu verwenden? Einfach irgendwo die Dateiaufnahme hochladen, die Umwandlung zum Text abwarten und nach redaktionellem Feinschliff könnte das Interview im Idealfall schnell online gehen. In unserer Naivität haben wir jedoch wohl einfach die Geschäftsmodelle der großen Cloud-Anbieter nicht bedacht. Aber der Reihe nach.
AWS, Google Cloud, Azure: nix mit schnell mal testen
Zunächst besprechen wir, dass wir uns der Einfachheit halber wirklich nur kurz die Angebote der drei großen Cloud-Anbieter ansehen wollen: also Amazon Web Services (AWS), Google Cloud und Microsofts Azure. Wir verteilen die Zuständigkeiten und warten auf Feedback für die Auswertung, die alsbald kommt, aber leider deutlich schlechter ausfällt, als wir uns das erhofft haben. Das liegt aber nicht etwa an der Sprachqualität - dazu später mehr -, sondern vor allem an den eher schlechten Testmöglichkeiten.

Noch recht einfach gestaltet sich der Test bei Microsofts Azure. Für dessen Speech-to-Text-Dienst als Teil der sogenannten Cognitive Services gibt es eine in Javascript geschriebene Beispielanwendung(öffnet im neuen Fenster) , die kostenfrei eine WAV-Datei in Echtzeit transkribiert.
Wir können oder müssen also dem Ergebnis beim Entstehen zusehen. Dabei denken wir kurz an den Compiling-Comic von XKCD(öffnet im neuen Fenster) . Doch selbst in Echtzeit ist die maschinelle Verarbeitung immer noch schneller als wir beim Abtippen eines Interviews. Wollen wir den Azure-Dienst aber wirklich produktiv einsetzen, sollten wir sinnvollerweise aber nicht immer nur die Beispielanwendung von Microsoft verwenden. Das wiederum heißt aber, dass wir doch selbst programmieren müssten, was wir wie erwähnt genau vermeiden wollten.
Google und AWS komplizierter
Im Fall von AWS gestaltet sich unser Test etwas schwieriger. Zwar lässt sich der Transkribe genannte Dienst nach einer Anmeldung mit ein paar wenigen Klicks verwenden, dafür müssen die Dateien aber zunächst in einem S3-Bucket bereitliegen. Doch Transkribe will unseren Bucket nicht. Es dauert eine Weile, bis wir herausfinden, dass unsere Bucket in Frankfurt/Main am falschen Ort liegt. Transkribe erwartet dafür einen Server an der US-Ostküste.
Danach laufen unsere Tests aber endlich zügig durch. Um zu diesem Punkt zu gelangen, benötigen wir jedoch eine detaillierte Anleitung und halten das Ganze auch für sehr wenig nutzerfreundlich. Einfach die Dateien hochladen und auswerten lassen wie in dem Azure-Beispiel ist bei AWS nicht möglich. Dafür könnten wir den Dienst aber immerhin nutzen, ohne selbst programmieren zu müssen. Der Weg dahin ist aber alles andere als intuitiv.
Unerwartete Probleme hat der Kollege, der sich für die Google Cloud entschieden hat. Zwar lässt sich auch dort ähnlich wie bei Microsoft schnell eine Datei hochladen und der Dienst kurz testen. Dies ist jedoch auf maximal eine Minute begrenzt. Ausführlicher geht dies nur nach einer Anmeldung und der Nutzung der API beziehungsweise eines Kommandozeilenwerkzeugs mit entsprechenden Zugangsdaten und dem Anlegen von Konfigurationsdateien.
Das ist dem testwilligen Kollegen zunächst einfach zu kompliziert. Und mit Blick auf den Einsatz in der gesamten Redaktion gehen wir davon aus, dass wir wohl um eine sehr ausführliche Anleitung oder eben die Programmierung einer eigenen kleinen Anwendung auch bei der Google Cloud nicht drum herumkommen.
Wir stellen etwas ernüchtert fest, dass das Transkribieren von Interviews doch nicht so schnell und einfach umsetzbar ist, wie wir uns das anfangs gedacht haben. Zumindest führt bei den drei großen Cloud-Diensten wohl kein Weg an der Entwicklungsabteilung vorbei. Wir machen uns dennoch an die Auswertung, schauen uns nach Alternativen um und werden dabei überrascht.
Speech-to-Text: Hoffnung für den Alltag
Wir hatten vor unseren Experimenten mit dem Gedanken gespielt, uns nach den Tests schlicht für das aus unserer Sicht qualitativ beste System zu entscheiden. Immerhin spielt die Preisgestaltung der Anbieter hier zumindest für unseren geringen Umfang an Aufnahmen und Transkriptionen im Monat keine besonders gewichtige Rolle. Und im Vergleich zu den Kosten einer Arbeitsstunde in der Redaktion ist die Cloud-Nutzung wesentlich günstiger.
Sowohl Google(öffnet im neuen Fenster) als auch AWS(öffnet im neuen Fenster) verlangen rund 1,40 US-Dollar pro transkribierter Stunde Audioaufnahmen. Bei Google lässt sich der Preis etwas senken, indem dem Unternehmen erlaubt wird, die eigenen Daten zu speichern und weiterzuverwenden. In Microsofts Azure(öffnet im neuen Fenster) kostet die Transkription pro Stunde 1 US-Dollar. Bei Anpassungen müssen wie bei den Konkurrenten rund 1,40 US-Dollar pro Stunde bezahlt werden.
Beste Ergebnisse in Englisch
Bei dem letztlich generierten Text unterscheiden sich die Ergebnisse der einzelnen Anbieter wie von uns erwartet nur in einigen Details. Dabei fällt die Transkription für English aber zumindest in unseren Tests wesentlich besser aus als für Deutsch. Bei Letzterem enttäuscht vor allem AWS mit Text, der kaum für uns verwendbar ist. Die Azure-Ausgabe unserer Tests ist dagegen brauchbar. Zwar müssten auch hier einige Details angepasst und Fehler behoben werden, als Arbeitsgrundlage ist sie aber durchaus hilfreich und für uns entsprechend die Cognitive Services von Azure wohl der beste Anbieter.
Von diesen Ergebnissen abgesehen zeigt sich, dass keiner der Dienste ohne weiteres durch sämtliche Kollegen genutzt werden könnte. Dafür sind die Zugangsvoraussetzungen und technischen Kenntnisse schlicht zu hoch - selbst in einer technikaffinen Redaktion wie unserer. Denn das von uns erhoffte Nutzungsprinzip aus Datei einfach hochladen und Auswertung kopieren bietet zumindest in der Praxis keiner der Anbieter.
Das Modell der Cloud-Anbieter ist eben kein Endkundengeschäft, sondern klassisches B2B. Das heißt für uns, dass wir dennoch zur einfachen Nutzung auf unsere Entwicklungsabteilung angewiesen sind, sofern wir einen der Cloud-Dienste zur Spracherkennung in unserem Team bereitstellen wollen. Idee und Konzept der Idee ist eben letztlich die Bereitstellung einer API, nicht aber einer Anwendung selbst.
Das muss auch anders gehen
Dem wollen wir uns aber trotzdem noch nicht ganz geschlagen geben und probieren einige der eher wilderen Ideen aus, die wir anfangs verworfen hatten, weil sie zu abwegig erschienen. Denn diese sind eigentlich nicht zum Transkribieren von Interviews oder Sprachaufnahmen gedacht, funktionieren aber ähnlich und könnten dafür genutzt werden. Dazu gehören zum Beispiel die automatisch erzeugten Untertitel auf Youtube.
Unsere Interview-Beispiele sind schnell in ein Format zum Hochladen umcodiert und die Untertitel lassen sich über das Kommandozeilenwerkzeug Youtube-dl herunterladen. Das Ergebnis ist überraschend gut. Neben den vielen Umwegen sind für unser Einsatzszenario eher hinderlich außerdem die Zeitstempel der Untertitel - auch wenn diese wohl schnell mit Hilfe regulärer Ausdrücke(öffnet im neuen Fenster) entfernt werden könnten.
Eine weitere Idee, die uns aus der Redaktion zugeworfen wird, ist es, einfach die Voicemail-Funktion von Microsoft Teams zu verwenden, uns also einfach selbst anzurufen und das Interview abzuspielen. Ganz ähnlich könnten die Diktierfunktionen von Microsofts Word im Cloud-Angebot oder Google Docs genutzt werden. Das Interview kann vor dem Mikrofon am Rechner abgespielt werden.
Das scheitert zwar nicht an irgendwelchen technischen Hürden, ist aber unserer Meinung nach wenig praktikabel. Zwar schwört einer der Kollegen schon länger auf eben diese Methode und ist von deren Qualität überzeugt, wie sich in den Gesprächen herausstellt. Wir verwerfen die Idee dennoch als nicht besonders gut umsetzbar.
Hoffnungsschimmer Microsoft
Die logische Konsequenz dieser Diktierfunktionen in den Office-Suiten ist eigentlich, direkt eine Transkription einzubauen, was genau unserem Anwendungsfall entspricht. Parallel zu unseren Experimenten hat Microsoft solch eine Funktion angekündigt(öffnet im neuen Fenster) . Diese steht für alle Microsoft-365-Abonnenten in Word bereit - bisher zwar nur für Englisch, später sollen aber weitere Sprache folgen. Die Technik, die dabei zum Einsatz kommt, sind die Cognitive Services, die Microsoft auch in Azure anbietet und uns durchaus brauchbare Ergebnisse geliefert hat.
Microsoft hat also zufällig während unserer Tests genau jenes Produkt angekündigt, was wir wegen seiner Einfachheit brauchen und eigentlich auch erwartet haben, dass es so ähnlich schon existiert. Immerhin haben dies unsere Experimente und die Rücksprache mit den Kollegen gezeigt, denn das ist die wohl einfachste Lösung zur Transkription und wir können vollständig auf das Programmieren verzichten - unser ursprüngliches Ziel. Bleibt zu hoffen, dass die Konkurrenz hier bald nachzieht. Zumindest Google sollte mit seiner G Suite theoretisch in der Lage dazu sein, Ähnliches zu bieten.



