Uns treibt ja die Aufgabe um, einen Smart Speaker zu bauen, der ohne Cloud-Anbindung funktioniert und insb. die Sprachanfragen nicht zu internationalen Großkonzernen geschickt werden. Dazu muss man nicht nur Sprache erkennen, sondern auch natürlichsprachig antworten können. Daher haben wir uns im letzten Jahr mit Sprachsynthese (TTS, Text to Speech) beschäftigt und recht ordentliche Ergebnisse erzielt.
Einen eigenen Eindruck davon kann man sich auf unseren Projektseiten verschaffen
Zahlen und Symbole
Der Weg dahin war allerdings durchaus steinig. Das fängt schon bei ganz einfachen Dingen an, die man als Deutscher beim täglichen sprechen gar nicht merkt. Zum Beispiel müssen Zahlen in Texten erst mal in Wörter umgewandelt werden, damit sie vorgelesen werden können. Dabei stellt man schnell fest, dass es erstens unterschiedliche Möglichkeiten gibt, Zahlen zu sprechen, die zum Teil auch kontextabhängig sind. So sagen viele bei Jahreszahlen eher zwanzig einundzwanzig für das Jahr 2021. Geht es um andere Zahlen, wie z.B. Geldbeträge, dann sagen die meisten eher zweitausend einundzwanzig. Noch schwieriger wird es, wenn man auch Ordinalzahlen mit einbezieht. Heißt es „die Erste“, „erstens“ oder „dem Ersten“ wenn da 1. steht? Das Problem entsteht einmal beim Vorlesen, aber auch schon vorher beim Training der Vorlesefunktion. Beim Training liegen ja Audiodateien und zugehörige Texte vor. Leider sind die Texte häufig noch nicht „normalisiert“, also mit ausgeschriebenen Zahlen und Symbolen (z.B. €, &). Dabei haben wir uns mit Spracherkennung beholfen. D.h. wir lassen die Audiodateien durch den Spracherkenner laufen und gleichen das dann mit dem bereits vorliegendem Text ab.
Aussprache
Eine weitere Herausforderung ist die korrekte Aussprache unbekannter Wörter. Das betrifft insb. Lehnwörter aus anderen Sprachen, als z.B. fake news, nonchalant, oder ähnliches. Richtig fies sind Namen von Personen, Unternehmen oder Orten, weil man häufig gar nicht so genau weiß, aus welcher Sprache das Ganze stammt und wie es korrekt ausgesprochen wird. Da ergeben sich erstaunliche Parallelen zur Vorbereitung des Einsprechens von Texten durch professionelle menschliche Sprecher. Unser Projektpartner ahearo arbeitet ja intensiv mit Profisprechern zusammen und muss auch mit denen jeden Text vorab kurz durchgehen, um evtl. auftretende Fachbegriffe, Fremdwörter oder andere Dinge, die den Lesefluss stören durchzusprechen. Beim Computer übernimmt den Teil ein Phonem-Wörterbuch, das Wörter in normalen Buchstaben in Lautschrift übersetzt, so dass der Computer weiß, wie das Wort ausgesprochen wird, weil die Lautschrift eindeutig die Aussprache festlegt (z.B. T-Shirt IPA: [ˈtiːˌʃøːɐ̯t] aber T-Stück IPA: [ˈteːʃtʏk]).
Technik
Schließlich galt es natürlich auch technische Herausforderungen zu überwinden. Nach jeder Änderung muss man entweder eines der beiden Modelle (Erzeugung von Mel-Spektrogram + Vocoder) die für die Sprachsynthese nötig sind neu trainieren, oder sogar beide. Jedes einzelne dauert 2-3 Tage auf unseren schnellsten Grafikkarten. Dann hat man noch verschiedene Stimmen als Trainingsdatensatz und schon wartet man eine Woche oder mehr, bis man neue Ergebnisse hat, die bewertet und analysiert werden können. Daher kann man fast nicht genug Rechenleistung haben, um schnelle Rückmeldung auf neue Ideen zur Verbesserung zu bekommen. Daher haben wir uns weiter verstärkt und zählen jetzt auch eine RTX A6000 mit 48 GB RAM, die durch die explodierenden Preise bei den RTX3090 im Q1/2021 preislich attraktiver geworden sind und uns mit dem doppelten Speicher zusätzliche Möglichkeiten eröffnen, da die Verteilung des Trainings auf mehrere GPUs zur Erhöhung des verfügbaren Speichers nicht immer problemlos möglich ist.