Bitte nutzen Sie unsere speziellen Kanäle für Fragen und Diskussionen. Hilfe ist viel wertvoller, wenn sie öffentlich geteilt wird, sodass mehr Menschen davon profitieren können.
Typ | Plattformen |
---|---|
Fehlerberichte | GitHub Issue Tracker |
? Funktionswünsche und Ideen | GitHub Issue Tracker |
? Fragen zur Nutzung | GitHub-Diskussionen |
? Allgemeine Diskussion | GitHub-Diskussionen oder Discord |
Typ | Links |
---|---|
Dokumentation | Lesen Sie die Dokumente |
? Installation | TTS/README.md |
? Mitwirken | BEITRAG.md |
? Straßenkarte | Hauptentwicklungspläne |
Freigegebene Modelle | TTS-Veröffentlichungen und experimentelle Modelle |
? Papiere | TTS-Papiere |
Unterstrichen „TTS*“ und „Judy*“ sind interne ?TTS-Modelle, die nicht als Open-Source-Version veröffentlicht werden. Sie sind hier, um das Potenzial zu zeigen. Modelle mit einem vorangestellten Punkt (.Jofish, .Abe und .Janice) sind echte menschliche Stimmen.
Trainer API
.dataset_analysis
.Sie können uns auch bei der Umsetzung weiterer Modelle helfen.
?TTS wurde auf Ubuntu 18.04 mit Python >= 3.9, < 3.12 getestet. .
Wenn Sie nur daran interessiert sind, Sprache mit den veröffentlichten ?TTS-Modellen zu synthetisieren, ist die Installation von PyPI die einfachste Option.
pip install TTS
Wenn Sie vorhaben, Modelle zu programmieren oder zu trainieren, klonen Sie ?TTS und installieren Sie es lokal.
git clone https://github.com/coqui-ai/TTS
pip install -e .[all,dev,notebooks] # Select the relevant extras
Wenn Sie Ubuntu (Debian) verwenden, können Sie zur Installation auch die folgenden Befehle ausführen.
$ make system-deps # intended to be used on Ubuntu (Debian). Let us know if you have a different OS.
$ make install
Wenn Sie Windows verwenden, hat ?@GuyPaddock hier Installationsanweisungen geschrieben.
Sie können TTS auch ohne Installation mit dem Docker-Image ausprobieren. Führen Sie einfach den folgenden Befehl aus und Sie können TTS ausführen, ohne es zu installieren.
docker run --rm -it -p 5002:5002 --entrypoint /bin/bash ghcr.io/coqui-ai/tts-cpu
python3 TTS/server/server.py --list_models # To get the list of available models
python3 TTS/server/server.py --model_name tts_models/en/vctk/vits # To start a server
Anschließend können Sie den TTS-Server hier genießen. Weitere Details zu den Docker-Images (z. B. GPU-Unterstützung) finden Sie hier
import torch
from TTS . api import TTS
# Get device
device = "cuda" if torch . cuda . is_available () else "cpu"
# List available ?TTS models
print ( TTS (). list_models ())
# Init TTS
tts = TTS ( "tts_models/multilingual/multi-dataset/xtts_v2" ). to ( device )
# Run TTS
# ❗ Since this model is multi-lingual voice cloning model, we must set the target speaker_wav and language
# Text to speech list of amplitude values as output
wav = tts . tts ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" )
# Text to speech to a file
tts . tts_to_file ( text = "Hello world!" , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
# Init TTS with the target model name
tts = TTS ( model_name = "tts_models/de/thorsten/tacotron2-DDC" , progress_bar = False ). to ( device )
# Run TTS
tts . tts_to_file ( text = "Ich bin eine Testnachricht." , file_path = OUTPUT_PATH )
# Example voice cloning with YourTTS in English, French and Portuguese
tts = TTS ( model_name = "tts_models/multilingual/multi-dataset/your_tts" , progress_bar = False ). to ( device )
tts . tts_to_file ( "This is voice cloning." , speaker_wav = "my/cloning/audio.wav" , language = "en" , file_path = "output.wav" )
tts . tts_to_file ( "C'est le clonage de la voix." , speaker_wav = "my/cloning/audio.wav" , language = "fr-fr" , file_path = "output.wav" )
tts . tts_to_file ( "Isso é clonagem de voz." , speaker_wav = "my/cloning/audio.wav" , language = "pt-br" , file_path = "output.wav" )
Konvertieren der Stimme in source_wav
in die Stimme von target_wav
tts = TTS ( model_name = "voice_conversion_models/multilingual/vctk/freevc24" , progress_bar = False ). to ( "cuda" )
tts . voice_conversion_to_file ( source_wav = "my/source.wav" , target_wav = "my/target.wav" , file_path = "output.wav" )
Auf diese Weise können Sie Stimmen klonen, indem Sie ein beliebiges Modell in ?TTS verwenden.
tts = TTS ( "tts_models/de/thorsten/tacotron2-DDC" )
tts . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
Verwenden Sie für Fairseq-Modelle das folgende Namensformat: tts_models/<lang-iso_code>/fairseq/vits
. Hier finden Sie die Sprach-ISO-Codes und hier erfahren Sie mehr über die Fairseq-Modelle.
# TTS with on the fly voice conversion
api = TTS ( "tts_models/deu/fairseq/vits" )
api . tts_with_vc_to_file (
"Wie sage ich auf Italienisch, dass ich dich liebe?" ,
speaker_wav = "target/speaker.wav" ,
file_path = "output.wav"
)
tts
Synthetisieren Sie Sprache auf der Befehlszeile.
Sie können entweder Ihr trainiertes Modell verwenden oder ein Modell aus der bereitgestellten Liste auswählen.
Wenn Sie keine Modelle angeben, wird das LJSpeech-basierte englische Modell verwendet.
Liste der bereitgestellten Modelle:
$ tts --list_models
Modellinformationen abrufen (sowohl für tts_models als auch für vocoder_models):
Abfrage nach Typ/Name: model_info_by_name verwendet den Namen wie aus --list_models.
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
Zum Beispiel:
$ tts --model_info_by_name tts_models/tr/common-voice/glow-tts
$ tts --model_info_by_name vocoder_models/en/ljspeech/hifigan_v2
Abfrage nach Typ/IDX: Die model_query_idx verwendet die entsprechende IDX von --list_models.
$ tts --model_info_by_idx "<model_type>/<model_query_idx>"
Zum Beispiel:
$ tts --model_info_by_idx tts_models/3
Abfrageinformationen für Modellinformationen nach vollständigem Namen:
$ tts --model_info_by_name "<model_type>/<language>/<dataset>/<model_name>"
Führen Sie TTS mit Standardmodellen aus:
$ tts --text "Text for TTS" --out_path output/path/speech.wav
Führen Sie TTS aus und leiten Sie die generierten TTS-WAV-Dateidaten weiter:
$ tts --text "Text for TTS" --pipe_out --out_path output/path/speech.wav | aplay
Führen Sie ein TTS-Modell mit seinem Standard-Vocoder-Modell aus:
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
Zum Beispiel:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --out_path output/path/speech.wav
Führen Sie es mit bestimmten TTS- und Vocoder-Modellen aus der Liste aus:
$ tts --text "Text for TTS" --model_name "<model_type>/<language>/<dataset>/<model_name>" --vocoder_name "<model_type>/<language>/<dataset>/<model_name>" --out_path output/path/speech.wav
Zum Beispiel:
$ tts --text "Text for TTS" --model_name "tts_models/en/ljspeech/glow-tts" --vocoder_name "vocoder_models/en/ljspeech/univnet" --out_path output/path/speech.wav
Führen Sie Ihr eigenes TTS-Modell aus (mit Griffin-Lim Vocoder):
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
Betreiben Sie Ihre eigenen TTS- und Vocoder-Modelle:
$ tts --text "Text for TTS" --model_path path/to/model.pth --config_path path/to/config.json --out_path output/path/speech.wav
--vocoder_path path/to/vocoder.pth --vocoder_config_path path/to/vocoder_config.json
Listen Sie die verfügbaren Lautsprecher auf und wählen Sie eine <speaker_id> aus:
$ tts --model_name "<language>/<dataset>/<model_name>" --list_speaker_idxs
Führen Sie das TTS-Modell mit mehreren Lautsprechern mit der Ziellautsprecher-ID aus:
$ tts --text "Text for TTS." --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --speaker_idx <speaker_id>
Führen Sie Ihr eigenes TTS-Modell mit mehreren Lautsprechern aus:
$ tts --text "Text for TTS" --out_path output/path/speech.wav --model_path path/to/model.pth --config_path path/to/config.json --speakers_file_path path/to/speaker.json --speaker_idx <speaker_id>
$ tts --out_path output/path/speech.wav --model_name "<language>/<dataset>/<model_name>" --source_wav <path/to/speaker/wav> --target_wav <path/to/reference/wav>
|- notebooks/ (Jupyter Notebooks for model evaluation, parameter selection and data analysis.)
|- utils/ (common utilities.)
|- TTS
|- bin/ (folder for all the executables.)
|- train*.py (train your target model.)
|- ...
|- tts/ (text to speech models)
|- layers/ (model layer definitions)
|- models/ (model definitions)
|- utils/ (model specific utilities.)
|- speaker_encoder/ (Speaker Encoder models.)
|- (same)
|- vocoder/ (Vocoder models.)
|- (same)