Pytorch-Implementierung von Generspeech (Neurips'22): Ein Text-zu-Sprach-Modell für die Übertragung von OOD-benutzerdefinierter Sprache mit hohem Fidelity-Null-Shot-Stil.
Wir bieten unsere Implementierungs- und vorbereiteten Modelle in diesem Repository.
Besuchen Sie unsere Demo -Seite für Audio -Beispiele.
Wir bieten ein Beispiel dafür, wie Sie mit Generspeech-Proben hochfidelische Proben erzeugen können.
Um Ihren eigenen Datensatz zu versuchen, klonen Sie dieses Repo einfach in Ihre lokale Maschine, die mit Nvidia gpu + cuda cudnn zur Verfügung gestellt wird, und befolgen Sie die folgenden Anweisungen.
Sie können hier vorgezogene Modelle und Daten hier zur Verfügung stellen. Details zu jedem Ordner finden Sie wie folgt:
| Modell | Datensatz (16 kHz) | Beschreibung |
|---|---|---|
| Generspeech | Libritts, ESD | Akusitisches Modell (Konfiguration) |
| Hifi-Gan | Libritts, ESD | NEuraler Vokoder |
| Encoder | / | Emotionskodierer |
In Kürze kommen bald unterstützte Datensätze.
Eine geeignete Conda -Umgebung namens generspeech kann erstellt und aktiviert werden mit:
conda env create -f environment.yaml
conda activate generspeech
Standardmäßig verwendet diese Implementierung so viele GPUs parallel, wie von torch.cuda.device_count() zurückgegeben. Sie können angeben, welche GPUs verwendet werden sollen, indem Sie die Umgebungsvariable CUDA_DEVICES_AVAILABLE vor dem Ausführen des Trainingsmoduls einstellen.
Hier bieten wir eine Sprachsynthesepipeline unter Verwendung von GenerSpeech.
checkpoints/GenerSpeech herunter und setzen Siecheckpoints/trainset_hifigan herunter und legen Sie es abcheckpoints/Emotion_encoder.ptdata/binary/training_set herunter und setzen SieCUDA_VISIBLE_DEVICES= $GPU python inference/GenerSpeech.py --config modules/GenerSpeech/config/generspeech.yaml --exp_name GenerSpeech --hparams= " text='here we go',ref_audio='assets/0011_001570.wav' " Generierte WAV -Dateien werden standardmäßig in infer_out gespeichert.
raw_data_dir , processed_data_dir , binary_data_dir und laden Sie den Datensatz auf raw_data_dir herunter.preprocess_cls in der Konfigurationsdatei. Die Datensatzstruktur muss den Prozessor preprocess_cls folgen, oder Sie können sie entsprechend Ihrem Datensatz umschreiben. Wir bieten einen Libritts -Prozessor als Beispiel in modules/GenerSpeech/config/generspeech.yamlemotion_encoder_path herunter. Weitere Informationen finden Sie in dieser Filiale. # Preprocess step: unify the file structure.
python data_gen/tts/bin/preprocess.py --config $path /to/config
# Align step: MFA alignment.
python data_gen/tts/bin/train_mfa_align.py --config $path /to/config
# Binarization step: Binarize data for fast IO.
CUDA_VISIBLE_DEVICES= $GPU python data_gen/tts/bin/binarize.py --config $path /to/configSie können auch einen Datensatz über Natspeech erstellen, der ein gemeinsames MFA-Datenverarbeitungsverfahren aufweist. Wir bieten auch unseren verarbeiteten Datensatz (16 kHz libritts+eSD) an.
CUDA_VISIBLE_DEVICES= $GPU python tasks/run.py --config modules/GenerSpeech/config/generspeech.yaml --exp_name GenerSpeech --resetCUDA_VISIBLE_DEVICES= $GPU python tasks/run.py --config modules/GenerSpeech/config/generspeech.yaml --exp_name GenerSpeech --inferDiese Implementierung verwendet Teile des Codes aus den folgenden Github -Repos: Fastdiff, Natspeech, wie in unserem Code beschrieben.
Wenn Sie diesen Code in Ihrer Forschung nützlich finden, zitieren Sie bitte unsere Arbeit:
@inproceedings { huanggenerspeech ,
title = { GenerSpeech: Towards Style Transfer for Generalizable Out-Of-Domain Text-to-Speech } ,
author = { Huang, Rongjie and Ren, Yi and Liu, Jinglin and Cui, Chenye and Zhao, Zhou } ,
booktitle = { Advances in Neural Information Processing Systems }
}Jede Organisation oder Person ist es untersagt, eine in diesem Papier erwähnte Technologie zu verwenden, um die Rede von jemandem ohne seine Zustimmung zu generieren, einschließlich, aber nicht beschränkt auf Regierungschefs, politische Persönlichkeiten und Prominente. Wenn Sie diesen Artikel nicht einhalten, könnten Sie gegen Urheberrechtsgesetze verstoßen.