Liest den Twitch-Chat automatisch oder manuell vor. Nutzer können einfach über die Whitelist hinzugefügt werden, indem man auf deren Namen klickt, oder man kann sie manuell eintragen.
screen -S tts -dm bash -c 'docker run --rm -it -p 5002:5002 -v /home/tts/models/:/root/.local/share/tts --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu -c "cd /root/TTS/server/ && python3 /root/TTS/server/server.py --model_name tts_models/de/thorsten/tacotron2-DDC"'
GPU:
Installation des NVIDIA Container Toolkits
screen -S tts -dm bash -c 'docker run --rm -it --gpus all -p 5002:5002 -v /home/tts/models/:/root/.local/share/tts --entrypoint /bin/bash ghcr.io/coqui-ai/tts -c "cd /root/TTS/server/ && python3 /root/TTS/server/server.py --model_name tts_models/de/thorsten/tacotron2-DDC --use_cuda true"'
Eine Alternative für PCs mit geringerer Leistung ist Mimic3 (eingestellt):
docker run -it -p 59125:59125 -v "${HOME}/.local/share/mycroft/mimic3:/home/mimic3/.local/share/mycroft/mimic3" 'mycroftai/mimic3'
Trage die URL deines Servers auf der Webseite unter "Eigenes TTS" ein. Ohne Proxy funktioniert dies nur mit Firefox, da HTTP-Traffic in Chrome auf HTTPS-Seiten blockiert wird.
Coqui:
http://localhost:5002/api/tts?text=&speaker_id=&style_wav=&language_id=
Mimic 3:
http://localhost:59125/api/tts?text=&voice=de_DE%2Fm-ailabs_low%23angela_merkel&noiseScale=0.333&noiseW=0.333&lengthScale=1&ssml=false&audioTarget=client
Eine weitere Alternative zu Mimic 3 ist PIPER. Es gibt Docker-Container, die jedoch das Wyoming-Protokoll nutzen. Da dies kein HTTP-Protokoll ist, muss eine Verbindung beispielsweise mit Python und Sockets hergestellt werden, und die fertige Datei wird dann über einen Webserver an den Client gesendet. Da dies umständlich sein kann, ist es einfacher, einen eigenen Docker-Container zu erstellen und die Python-Bibliothek mit einem Webserver nutzbar zu machen. Die IP-Adressen sollten natürlich aus Sicherheitsgründen nicht für jeden Server erreichbar sein, was mit IP-Tables konfiguriert werden kann.
Beispiel für IP-Tables:
sudo iptables -A INPUT -p tcp --match multiport --dports 5000,5002 -s 127.0.0.1 -j ACCEPT
sudo ip6tables -A INPUT -p tcp --match multiport --dports 5000,5002 -s ::1 -j ACCEPT
sudo iptables -A INPUT -p tcp --match multiport --dports 5000,5002 -s 164.68.125.80 -j ACCEPT
sudo iptables -A INPUT -p tcp --match multiport --dports 5000,5002 -s 10.8.0.1 -j ACCEPT
sudo ip6tables -A INPUT -p tcp --match multiport --dports 5000,5002 -s 2a02:c207:3004:7190::1 -j ACCEPT
sudo iptables -A INPUT -p tcp --match multiport --dports 5000,5002 -j DROP
sudo ip6tables -A INPUT -p tcp --match multiport --dports 5000,5002 -j DROP
Der Unterschied zwischen Tacotron 2 DDC und VITS ist hauptsächlich folgender: Tacotron 2 DDC bietet eine natürlichere Sprachausgabe. Es kann jedoch bei unbekannten Wörtern zu fehlerhaften Ausgaben kommen, wie seltsamen Lauten oder Stottern. Dagegen hilft es, den Input zu filtern und kurze, grammatisch korrekte Sätze ohne spezielle Satzzeichen zu verwenden. Das Problem liegt in der Architektur und dem Training des Modells und muss daher umgangen werden. Ein höherer Wert für max_decoder_steps (z. B. 1000) kann auch helfen, das Abbrechen von Sätzen zu verhindern. VITS-Modelle haben dieses Problem nicht, klingen aber eher roboterhaft, da sie nicht autoregressiv sind, dafür sind sie jedoch weniger anfällig für Fehler und benötigt weniger Rechenleistung.
Für Windows benötigst du WSL, damit du Docker installieren kannst.
Alternativ kannst du auch eine eigene Lösung in Python nutzen.