Training des TTS-Modells
Viele (mit Machine Learning) trainierte TTS-Modelle teilen sich in folgende zwei Phasen auf:
1. Das TTS-Modell: Teil eins ist für die Zerlegung des zu sprechenden Textes in seine Bestandteile (Zeichen oder Phoneme) verantwortlich. Mittels Unmengen an magischem Feenstaub erzeugt dieser Teil des TTS-Trainings ein Mel Spectogram als Ergebnis. In dieser Phase lernt das Modell unter anderem den Sprachfluss. Coqui TTS unterstützt die Erzeugung der TTS-Modelle Tacotron2, GlowTTS, AlignTTS, VITS und weiterer.
2. Das Vocoder-(Voice Encoder)-Modell: Auf Basis der erzeugten Mel Spectograms erzeugt dieser Teil die später hörbare Waveform-Audio. In diesem Bereich unterstützt Coqui TTS unter anderem die Modelle Wavegrad, Fullband-MelGAN und HifiGAN.
Die verfügbaren Modelle unterscheiden sich im Sprachfluss, der erzeugten Audioqualität und dem RTF (real time factor). Beispielsweise haben viele GAN-Vocoder Modelle einen metallischen Klang, während HifiGAN eine höhere Qualität bietet. Beim RTF handelt es sich um einen numerischen Messwert, der das Verhältnis zwischen Dauer des erzeugten Audios und der dafür im Vorfeld notwendigen Erzeugungsdauer bezeichnet.
Beispiel: Ein künstlich gesprochener Satz mit einer Dauer von sieben Sekunden hätte bei einem RTF von 1 im Vorfeld (bevor die Sprachausgabe beginnt) ebenfalls sieben Sekunden Zeit beansprucht. Bei einem RTF von 0,5 wären es 3,5 Sekunden. Daher hängt das verwendbare Modell stark vom geplanten Anwendungsfall ab.
In einem Dialogsystem, wo ein Anwender auf eine Antwort wartet, ist ein RTF von 1 schon grenzwertig. Wer möchte denn auf die Frage nach dem Wetter mehrere Sekunden auf die gesprochene Antwort seines Smartspeakers warten? Neben dem verwendeten Modell hängt die tatsächliche Dauer auch von der verwendeten Hardware ab. Generell liefert ein System mit GPU (CUDA) bei den meisten Modellen deutlich bessere Performance als bei reiner CPU-Nutzung.
Für den TTS-Betrieb auf einem System wie dem Raspberry Pi lohnt sich derzeit auch ein Blick auf Projekte wie Larynx oder Mimic3.
Training konfigurieren und starten
Die Konfiguration eines TTS/Vocoder-Modell-Trainings wird in einer Python-Datei vorgenommen. Eine gute Ausgangslage sind die von Coqui gelieferten Vorlagen im Verzeichnis /recipes. Diese muss an die individuellen Gegebenheiten (Pfade zum Voice Dataset, Sprache und einiges mehr) angepasst werden.
In der Datei können auch Testsätze hinterlegt werden, die vom Modell während des Trainings regelmäßig erzeugt werden. Anhand dieser Sätze kann der Trainingsfortschritt in Bezug auf Qualität, Natürlichkeit und Aussprache beurteilt werden. Bei der Auswahl der Testsätze empfiehlt es sich auch, Sätze mit deutschen Sonderzeichen zu verwenden, um mögliche Probleme bei der Aussprache solcher Zeichen frühzeitig erkennen zu können.
Aufgrund der nahezu unzähligen Konfigurationsmöglichkeiten von TTS- und Vocodermodellen kann eine Nachfrage in der Community den einen oder anderen frustrierenden Versuch ersparen. Dies ist gerade wichtig, da je nach verwendeter Hardware ein Training mehrere Stunden, Tage oder Wochen dauern kann.
Nach Abschluss der Konfiguration kann ein Training durch Aufruf der entsprechenden Python-Datei gestartet werden. Beispielsweise: python3 ./train_thorsten_tacotron2-ddc.py
Während des laufenden Trainings lohnt sich ein regelmäßiger Blick in das Tensorboard. Diese webbasierte lokale Anwendung zeigt hilfreiche Diagramme zum Trainingsfortschritt und bietet die Möglichkeit, die regelmäßig erzeugten Testsätze per Webbrowser anzuhören.
pip3 install tensorboard tensorboard -logdir=[Ausgabepfad eures Modelltrainings] --bind_all
Das Tensorboard ist nach dem Start unter folgender Adresse erreichbar: "http://[IP]:6006".
Eine schöne diagonale Linie beim Alignment und sinkende Loss-Kurven im Eval-Prozess sind einige Indizien für einen guten Trainingsverlauf. Alle Graphen des Tensorboards im Detail zu erklären, würde den Rahmen des Artikels sprengen - das liegt nicht etwa daran, dass ich selber nicht alle Graphen im Detail verstehe.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Was bei der Erstellung des Text Corpus zu beachten ist | Beenden des Trainings und Verwendung des Modells |
Durchaus. Aber wenn man mit dem 12MP ( Ton bei normaler Geschwindigkeit...
excellenter artikel, fehlt nur der link darauf ohne paginierung.
die gruppe für das Projekt ist MycroftAI nicht mycroft: https://github.com/MycroftAI...
Kommentieren