|
-

Abenteurer
[RELEASE] GameTTS - Text-To-Speech Anwendung
Hallo zusammen,
ergänzend zu diesem Thread und endlich mit ausreichend Zeit, habe ich mich wieder mit dem Thema TTS beschäftigen können. (Entschuldigt die Abwesenheit)
Ohne groß weiter zu schwafeln, will ich euch das von mir zuletzt trainierte TTS-Modell zur Verfügung stellten. (Das Training läuft aktuell seit 2 Wochen und ist noch aktiv)
Um das Ganze ein wenig zugänglicher zu machen, habe ich eine kleine GUI geschrieben.
Das ganze ist als WebApp verpackt, heißt ihr braucht einen der gängigen Browser (Chrome, Edge, Firefox).
Dies war ein erster Versuch, eine solche WebApp zu schreiben, daher solltet ihr nicht allzu viel erwarten.
Sollte ich das Thema GUI weiter verfolgen, werde ich wahrscheinlich auf Electron oder eine der nativen GUI Bibliotheken von Python umsteigen.
Anbei der Link zur Anwendung samt Anleitung und den trainierten Modelle.
Link Anwendung: https://github.com/lexkoro/GameTTS
Aktuelle Version (1.1.6): https://drive.google.com/file/d/1xkI...ew?usp=sharing
Verwendetes TTS Repository: https://github.com/jaywalnut310/vits
Viele Grüße
Geändert von sanjaesc (27.08.2023 um 20:50 Uhr)
-
WOW!
Das ist grandios!
Ich habe es gerade mal mit den üblichen verdächtigen probiert (Held, Xardas, Lester, Milten, Gorn, Lieblingswache nr 4)
Hier sind mal ein paar Samples:
https://puu.sh/HWdTP.m4a (Bullit, Fletcher, Drax, ...)
https://puu.sh/HWe4C.m4a (Xardas)
Ich glaube, ich könnte doch die ein oder andere Quest in meine Mod einbauen...
Geändert von Kirides (14.07.2021 um 09:31 Uhr)
-
Es ist so geil! Tausend Dank!
-
Is it possible to teach in other languages at all? Just how many Russian voice TTS exist, they are all terrible (I have to make a Polish version of TTS from google neural networks)
-
Sehr interessanter Ansatz. Auch wenn man natürlich die Künstlichkeit der Stimmen heraushören kann, ist das definitiv ein Benefit wenn man die Originalsprecher für eine Mod benutzen möchte.
Beispiele:
Xardas: 49_Bodo Henkel_0714195863_tmp_file.mp3
Held: 58_Christian Wewerka_0714221348_tmp_file.mp3
Diego: 34_Uwe Koschel_0714998338_tmp_file.mp3
Milten: 19_Dieter Gring_0714280355_tmp_file.mp3
Gorn: 93_Helge Heynold_0714047877_tmp_file.mp3
Lester: 55_Peter Heusch_0714760762_tmp_file.mp3
Ich finde die Beispiele zeigen gut, was geht und was eben nicht. 
Irgendwann muss man sich auch um rechtliche Einschränkungen Gedanken machen.
-
 Zitat von Milgo
Sehr interessanter Ansatz. Auch wenn man natürlich die Künstlichkeit der Stimmen heraushören kann, ist das definitiv ein Benefit wenn man die Originalsprecher für eine Mod benutzen möchte.
Gerade für leute die nur eine "Balancing" Mod machen möchten, aber vielleicht doch ein oder zwei Items mit Missionen verbinden wollen ist sowas ein Segen.
Unvertonte neue Dialoge in einer bestehenden Welt sind einfach blöd. Genauso wie einem bestehenden NPC plötzlich nur für 3 Zeilen eine neue Stimme zu geben (siehe Gothic 3...)
-
Vielen Dank für deine Arbeit an dem Tool sanjaesc!
Sehe es ähnlich wie Kirides, gerade für nur wenige Dialoge in Balancingmods äußert hilfreich.
Ich rieche jetzt schon eine Menge neuer Quests in zukünftigen Mods.
-
Herzlichen Dank dafür sanjaesc.
Ich werde mir das am Wochenende genauer ansehen.
-
 
Provinzheld
Geschlecht: Gothic
Gute Arbeit, dachte schon da kommt nichts mehr. 
Gibt es eine einfache Möglichkeit, noch neue Sprecher mit dem vits-Repo zu trainieren und dem Modell hinzuzufügen? Da fehlt z.B. noch Aart Veder, der Sprecher von Y'Berion.
-
 Zitat von Milgo
Der Satz von Gorn "Hauen wir ihm einfach volles Pfund aufs Maul" hat sich echt natürlich angehört, sogar die Aggressivität der Betonung passt hier perfekt! Kann man eigentlich nicht mehr von einer Originalaufnahme unterscheiden.
-
wir könnten auch die Sprecher aus dem Hörtalk Forum und andere professionelleren Sprecher aus aktuellen Mods hinzufügen.
Allein LoA + Dirty Swamp + Odyssee sollten mega viele Input Files bieten. zB. für Alexander Mateka.
-
 Zitat von TheEternal
wir könnten auch die Sprecher aus dem Hörtalk Forum und andere professionelleren Sprecher aus aktuellen Mods hinzufügen.
Allein LoA + Dirty Swamp + Odyssee sollten mega viele Input Files bieten. zB. für Alexander Mateka.
Gerade soetwas finde ich sehr bedenklich. Haben die Leute nicht ein Anrecht darauf zu entscheiden, was mit ihrer Stimme passiert? Noch ist das ganze vielleicht nicht realistisch genug, aber ist Grund genug damit man die Stimmen der Sprecher extrahieren darf? Sprecher im Amateurbereich haben ja nicht einmal eine Kompensation dafür erhalten.
Ich finde es schon gruselig, dass plötzlich Sprachaufnahmen von Sprechern entstehen können, die heute tot sind.
-

Adventurer
 Zitat von sanjaesc
Hallo zusammen,
ergänzend zu diesem Thread und endlich mit ausreichend Zeit, habe ich mich wieder mit dem Thema TTS beschäftigen können. (Entschuldigt die Abwesenheit)
Ohne groß weiter zu schwafeln, will ich euch das von mir zuletzt trainierte TTS-Modell zur Verfügung stellten. (Das Training läuft aktuell seit 2 Wochen und ist noch aktiv)
Um das Ganze ein wenig zugänglicher zu machen, habe ich eine kleine GUI geschrieben.
Das ganze ist als WebApp verpackt, heißt ihr braucht einen der gängigen Browser (Chrome, Edge, Firefox).
Dies war ein erster Versuch, eine solche WebApp zu schreiben, daher solltet ihr nicht allzu viel erwarten.
Sollte ich das Thema GUI weiter verfolgen, werde ich wahrscheinlich auf Electron oder eine der nativen GUI Bibliotheken von Python umsteigen.
Anbei der Link zur Anwendung samt Anleitung und den trainierten Modelle.
Link Anwendung: https://github.com/lexkoro/GameTTS
Link Modelle: https://drive.google.com/drive/folde...Nb?usp=sharing
Verwendetes TTS Repository: https://github.com/jaywalnut310/vits
Viele Grüße
Hey! Vorne weg natürlich ein großes Danke! Ich selbst verfolge die Sprachsynthese und war immer am überlegen ob man in der Richtung nicht mal was für die Community machen sollte.
- Dürfte ich dich fragen wieso du dich konkret für VITS entschieden hast? Lag es an der "schnelleren" Trainings- und Inferenzzeit?
- Hast du das Modell von Grund auf trainiert oder konntest du Transferlernen?
- Hast du auch andere Modelle in Betracht gezogen wie beispielsweise den Tacotron? Wenn ich VITS richtig überlesen habe ist es ja ein einziges End-to-End Modell. Würde ein mehrstufiges Modell nicht unter Umständen Vorteile bringen? Sei es, dass Teile der Trainingsdatenbeschaffung vielleicht mit der Community gesourced werden könnten.
- Du meinst dein Modell trainiert noch... Die Frage ist jetzt auch ein bisschen im Anschluss dazu "wie" du trainierst: Wie lange dauert ein VITS durchlauf? Mit welchen Trainingsdaten arbeitest du? Hast du genug? Siehst du bzw. hörst du deutliche Steigerungen nach paar Epochen? Kann man dir bei den Trainingsdaten helfen?
- Ist der "stochastic duration predictor" parametrierbar? Ich habe immer das Gefühl, dass die Sprachqualität nachlässt, sobald verschiede Betonungen oder "Rythmen" aufgenommen werden. Vielleicht liegt ja hier eine Möglichkeit die Audioqualität zu steigern?
Musste die Fragen mal los werden Dafür interessiert es mich zu sehr und ich finde es ein zu geiles Werkzeug für die Community.
Grüße
-

Abenteurer
 Zitat von N1kX
Is it possible to teach in other languages at all? Just how many Russian voice TTS exist, they are all terrible (I have to make a Polish version of TTS from google neural networks)
Yes you can, as long as you have the necessary training data to do so. Training data here is the audio data + the associated transcription of what is said.
Best case with recordings in good quality and no mistakes in the transcription.
 Zitat von Herobrine
Gute Arbeit, dachte schon da kommt nichts mehr.
Gibt es eine einfache Möglichkeit, noch neue Sprecher mit dem vits-Repo zu trainieren und dem Modell hinzuzufügen? Da fehlt z.B. noch Aart Veder, der Sprecher von Y'Berion.
Noch nicht ausprobiert, aber wahrscheinlich könnte man das vorhandene Modell um weitere Sprecher nachtrainieren. Ich habe bewusst Sprecher weggelassen, weil diese zu wenig Trainingsdaten hatten.
Geändert von sanjaesc (16.07.2021 um 07:47 Uhr)
-

Abenteurer
 Zitat von killyouridol
Hey! Vorne weg natürlich ein großes Danke! Ich selbst verfolge die Sprachsynthese und war immer am überlegen ob man in der Richtung nicht mal was für die Community machen sollte
Hast du das Modell von Grund auf trainiert oder konntest du Transferlernen?
Dieses Modell habe ich von Grund auf neu trainiert. Ich hatte Transfer-learning auch nur ganz am Anfang meiner Experimente eingesetzt, als ich noch nicht genügend Daten hatte. Da habe ich ein englisches TTS Modell als Grundlage verwendet, die Ergebnisse waren jedoch deutlich schlechter.
 Zitat von killyouridol
Hast du auch andere Modelle in Betracht gezogen wie beispielsweise den Tacotron? Wenn ich VITS richtig überlesen habe ist es ja ein einziges End-to-End Modell. Würde ein mehrstufiges Modell nicht unter Umständen Vorteile bringen? Sei es, dass Teile der Trainingsdatenbeschaffung vielleicht mit der Community gesourced werden könnten.
Dürfte ich dich fragen wieso du dich konkret für VITS entschieden hast? Lag es an der "schnelleren" Trainings- und Inferenzzeit?
Die mehrstufigen Modelle nutzen ja die selben Trainingsdaten, Audio + Transkript. Mehrstufig heißt hier TTS + Vocoder, wobei TTS aus dem Text ein Spektrogramm erzeugt und der Vocoder aus dem Spektrogramm ein Audiosignal erzeugt. Ein Vocoder wird dann nur mit den Audiodaten trainiert. VITS hat den Vorteil, dass nicht erst ein TTS Modell und dann noch ein Vocoder Modell trainiert werden muss.
Es war keine konkrete Entscheidung VITS zu nutzen, eher "Ich probiere den Stand der Technik aus". Zuvor hatte ich auch andere Modelle trainiert, unteranderem Tacotron2 oder auch GlowTTS. Tacotron2 lieferte gute Ergebnisse im Bezug auf die Natürlichkeit des gesprochenen. Man kann auch den gesprochenen Stil variieren. Hier war die Synthese jedoch nicht immer robust, beispielsweise brach diese mitten im Satz ab. GlowTTS ist robuster, klingt aber hörbar unnatürlicher, eher durchweg monoton.
Das aktuelle Ergebnis vom VITS Training war nur ein erster Test, um zu sehen, wie die Qualität ist. War am Ende positiv überrascht, weshalb ich es auch geteilt habe.
Bezüglich der Datenbeschaffung, dies wäre problematisch, oder? Dafür müsste jeder eine Kopie des Produkts haben, um die Daten teilen zu können?
 Zitat von killyouridol
Du meinst dein Modell trainiert noch... Die Frage ist jetzt auch ein bisschen im Anschluss dazu "wie" du trainierst: Wie lange dauert ein VITS durchlauf? Mit welchen Trainingsdaten arbeitest du? Hast du genug? Siehst du bzw. hörst du deutliche Steigerungen nach paar Epochen? Kann man dir bei den Trainingsdaten helfen?
Trainiert wird auf einer Tesla V100 von NVIDIA mit 32GB Speicher. Was genau meinst du mit Durchlauf?
Trainingsdaten sind hierbei Audiodaten samt Transkription, welche ich aus den Spielen extrahiert habe. Es sind aktuell ca. 88.000 Files.
Das wichtigste hierbei ist natürlich saubere Audiodaten mit korrekter Transkription zu haben. Was Deep Learning angeht heißt es natürlich, je mehr Daten desto besser.
 Zitat von killyouridol
Ist der "stochastic duration predictor" parametrierbar? Ich habe immer das Gefühl, dass die Sprachqualität nachlässt, sobald verschiede Betonungen oder "Rythmen" aufgenommen werden. Vielleicht liegt ja hier eine Möglichkeit die Audioqualität zu steigern?
Man könnte hier versuchen mit MFA genauere Vorhersagen über die Dauer der einzelnen phoneme zu extrahieren. Zum duration predictor kann ich leider nicht viel sagen, muss mich da selber erst einlesen.
-
Ich wüsste gerne, ob die generierten .wav Dateien in Gothic 1 & 2 abgespielt werden ohne diese nachträglich bearbeiten zu müssen. Vielleicht hat das schon wer getestet?
Was kann man mit dem Reiter "Datei" machen?
-
Könnte man so falsch vertonte Dialogzeilen reparieren?
Z. B. diese 2 Dialogzeilen sind in G1 von Lees Sprecher vertont statt vom Helden:
https://vocaroo.com/1f0OiwcSSlbO
https://vocaroo.com/1gtoR2EGdqef
-
Coole Sache! Bräuchtest du evtl. Hilfe im Bereich GUI? Du meinstest in deinem Eingangspost zwar du schaust dir evtl. noch native Python libs an, aber ich könnte dir evtl. eine WPF-App dafür schreiben, da es eh erstmal Windows-Spezifisch ist. Das würde wohl auch die Nutzung bzw. Installation nochmal etwas vereinfachen.
-

Abenteurer
 Zitat von Raubkopiesäbel
Was kann man mit dem Reiter "Datei" machen?
Dort kann eine Textdatei eingelesen werden, um mehrere Sätze zu generieren. Zusätzlich kann auch eine Sprecher ID angehängt werden, die dann für den jeweiligen Satz genommen wird.
Beispiel: https://github.com/lexkoro/GameTTS/b...input_file.csv
 Zitat von GenerationLost
Coole Sache! Bräuchtest du evtl. Hilfe im Bereich GUI? Du meinstest in deinem Eingangspost zwar du schaust dir evtl. noch native Python libs an, aber ich könnte dir evtl. eine WPF-App dafür schreiben, da es eh erstmal Windows-Spezifisch ist. Das würde wohl auch die Nutzung bzw. Installation nochmal etwas vereinfachen.
WPF war ursprünglich auch meine erste Überlegung. Aber wie würdest du die python Skripte aufrufen? Als subprocess? Wäre es möglich die App mit .NET Core für beide Systeme kompatibel zu machen?
Es gibt dann noch IronPython, aber ich weiß nicht, ob es mit den ganzen Abhängigkeiten kompatibel ist.
Geändert von sanjaesc (16.07.2021 um 16:35 Uhr)
-
 Zitat von sanjaesc
WPF war ursprünglich auch meine erste Überlegung. Aber wie würdest du die python Skripte aufrufen? Als subprocess? Wäre es möglich die App mit .NET Core für beide Systeme kompatibel zu machen?
Es gibt dann noch IronPython, aber ich weiß nicht, ob es mit den ganzen Abhängigkeiten kompatibel ist.
Genau, einfach als neuer Prozess. Ich gehe davon aus, das läuft bei deiner Web App so ähnlich? Was meinst du mit "beiden Systemen"? .NET Core läuft ja auf allen gängigen Desktop-OSses, es wäre da nur eine Frage des GUI-Frameworks. WPF ist halt an Windows gebunden und MAUI ist erst noch in der Preview. Sonst gibt es auch weiterhin noch ein paar Cross-Platform Ansätze, z.B. Avalonia.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|