Computer haben angefangen mit uns zu reden! Dahinter stecken sogenannte Text-to-Speech-(TTS-)Systeme. Durch neuronale Netze, Deep Learning und viele Trainingsdaten sind die in den letzten Jahren immer besser und besser geworden. In manchen Fällen kann man sogar kaum noch zwischen Mensch und Maschine unterscheiden.
In einem unserer neuesten codecentric.AI Videos haben wir euch einen Vergleich von Text-to-Speech-Systemen gezeigt: Wir haben einen kleinen Wettbewerb zwischen Polly, Alexa, Siri und Co mit verschiedenen Zungenbrechern veranstaltet und geguckt, was diese Systeme so alles können. Um uns anzuhören, wie die verschiedenen Systeme klingen, haben wir deutsche und englische Stimmen verglichen und auch selber ein paar Zungenbrecher aufgesagt.
Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren
YouTube immer entsperren
Übrigens: Wer diesen Artikel lieber hören statt lesen möchte, findet hier die Audioversion – natürlich powered by TTS AI (Amazon Polly) !
Text-to-Speech-Systeme
Text-to-Speech (TTS) bezeichnet Systeme oder Applikationen, die geschriebenen Text als Input nehmen und in gesprochene Audioversionen umwandeln; sie lesen uns also digitalen Text laut vor. Der computergenerierte akustische Output soll dabei möglichst menschlich und “echt” klingen. Mithilfe von neuronalen Netzen und Deep Learning sind TTS Systeme dabei in den vergangenen Jahren deutlich besser geworden. Heute gibt es Modelle, die schon sehr natürlich klingen und teilweise kaum noch von einem Menschen zu unterscheiden sind.
TTS-Systeme finden in vielen Programmen Anwendung; die bekanntesten sind sicherlich persönliche Assistenten wie Siri, Alexa, Cortana und Google. Aber auch in “kleineren” Programmen findet sich TTS-Technologie! So hilft TTS zum Beispiel Sehbehinderten dabei, mit Computern, Tablets, Smartphones oder anderen digitalen Geräten arbeiten zu können. TTS kann auch mit anderen Techniken aus der Spracherkennung kombiniert werden, wie zum Beispiel Optical Character Recognition (OCR), um Text auf Bildern zu lesen oder Voice Recognition, um gesprochenen Input zu verstehen und darauf zu antworten. Wir können uns Nachrichten, Bücher oder Artikel vorlesen lassen, während wir z.B. Auto fahren oder Programme über Sprachanweisungen steuern ohne die Hände nutzen zu müssen.
Wie funktioniert TTS?
Herausforderungen für gute TTS-Systeme sind die Komplexität der menschlichen Sprache: je nachdem wie wir einen Satz betonen, kann er unterschiedliche Bedeutungen haben. AI-basierte TTS Systeme berücksichtigen Phoneme und Satzmelodie. Es gibt mehrere Ansätze für die künstliche Erzeugung von Sprache.
Eine der wichtigsten ist die Unit-Selection-Synthese. Hierbei wird der Text zunächst normalisiert und in kleine Einheiten aufgeteilt; das können Sätze, Wörter, Silben, Phoneme etc. sein. Die Strukturen (z. B. die Aussprache) dieser Einheiten werden im Kontext gelernt. Dieser Teil fällt unter das sogenannte Natural Language Processing (NLP). Außerdem wird eine Sprachdatenbank generiert, die basierend auf dem segmentierten Text durchsucht wird, um passende Sprachbausteine zu finden (Unit Selection). Diese Suche passiert heutzutage in der Regel mit Entscheidungsbäumen, Neuronalen Netzen oder Hidden-Markov-Modellen. Die Sprachdatenbank selber kann aus menschengesprochenen Audiostücken bestehen oder die entsprechenden Phoneme werden von einem Computer generiert. Letzteres nennen wir Formantensynthese. Sie bietet deutlich mehr Möglichkeiten, denn der Sprachschatz ist nicht limiert; auch jedes unbekannte Wort kann vom Computer generiert werden und die Stimmen können flexibel ausgetauscht werden. Bis vor Kurzem klang aus menschengesprochenen Bausteinen synthetisierte Sprache noch deutlich besser als aus der Formantensynthese. Aber das ändert sich gerade deutlich und es gibt schon viele “künstliche” TTS-Systeme, die sehr menschlich klingen.
Welche TTS-Systeme gibt es?
Alexa hat sich weltweit millionenfach verkauft. Dein Google Navi erzählt dir, wo du abbiegen musst. Siri erinnert dich an deine Termine. Cortana gibt dir Windows-Tipps. Watson beantwortet Support-Anfragen usw. Aber es gibt auch eine Reihe von webbasierten Programmen oder Handy-Apps, die einen eingegebenen Text vorlesen.
In vielen digitalen Geräten gibt es schon eingebaute TTS-Systeme, z. B. in Computern, Smartphones, usw.
- Microsoft/Windows: besitzt das eingebaute TTS-System Narrator und die Microsoft Speech API
- Mac: hat VoiceOver (oder auf älteren Rechnern PlainTalk)
- Linux: verschiedene TTS Programme können installiert werden, z.B. eSpeak
Viele TTS-Systeme gibt es als Software zum Herunterladen und Installieren und/oder webbasiert im Browser bzw. als API. Die großen Cloud-Anbieter wie Amazon, Google, IBM und Microsoft bieten TTS-Systeme “as a Service” an, so dass man mit wenig Aufwand Sprachausgabe in seine eigenen Programme integrieren kann. Aber es existieren auch einige Open-Source-Projekte für TTS (allerdings sind die meistens nur für Windows verfügbar). Hier eine unvollständige Liste von Systemen:
Text-to-Speech von der Kommandozeile aus
Mit espeak können wir auch direkt von der Kommandozeile aus TTS generieren:
1espeak -v german -w 'tongue_twister_intro2.wav' 'Computer haben angefangen mit uns zu reden! Dahinter stecken sogenannte Text-to-Speech (TTS) Systeme. Durch neuronale Netze, Deep Learning und viele Trainingsdaten sind die in den letzten Jahren immer besser und besser geworden. In manchen Fällen kann man sogar kaum noch zwischen Mensch und Maschine unterscheiden.'
Das Ergebnis hört ihr hier .
Text-to-Speech in Python
Auch mit Python kann man schnell und einfach TTS erzeugen, z. B. mit dem gTTS-Paket, das die Google Text-to-Speech (TTS) API nutzt:
1# Python3 2pip install gTTS
1# Python3 2from gtts import gTTS 3import os 4 5# Text 6mytext = 'Computer haben angefangen, mit uns zu reden! Dahinter stecken sogenannte Text-to-Speech-(TTS-)Systeme. Durch neuronale Netze, Deep Learning und viele Trainingsdaten sind die in den letzten Jahren immer besser und besser geworden. In manchen Fällen kann man sogar kaum noch zwischen Mensch und Maschine unterscheiden.' 7 8# Sprache (ISO Code) 9language = 'de' 10 11# Erzeugen der Sprachausgabe 12myobj = gTTS(text=mytext, lang=language, slow=False) 13 14# Speichern als mp3 15myobj.save("tongue_twister_intro.mp3")
Das Ergebnis hört ihr hier .
Wer spricht am besten?
Mit der Vielzahl an (frei verfügbaren) TTS Systemen ist es inzwischen sehr leicht, TTS in eigene Programme oder Apps einzubauen. Ein paar Beispiele habt ihr hier kennengelernt. In unserem Video und in der Audioversion von diesem Blogpost konntet ihr verschiedene TTS-Systeme im Vergleich hören. Im Moment klingen die englischen Stimmen meist noch deutlich besser als die deutschen. Die deutschen Stimmen klingen bei den meisten Anbietern noch ziemlich blechern. Auch ist es noch problematisch, wenn z. B. englische Ausdrücke in einem deutschen Text vorkommen, wie in der vorgelesenen Versionen dieses Artikels deutlich zu hören ist; da wir uns nur für eine Sprache entscheiden können, wird in der deutschen Variante auch englischer Text von den TTS-Systemen sehr “deutsch” ausgesprochen. Aber wie wir im Video gehört haben, gibt es bereits ein paar Modelle, die deutlich besser klingen als andere. Es ist nur noch eine Frage der Zeit, bis diese für alle Services einsatzbereit sind.
Weitere Beiträge
von Shirin Elsinghorst
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Shirin Elsinghorst
Team Lead & Consultant Data/AI
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.