Une implémentation Pytorch de CS-Tacotron, un modèle de TTS génératif de bout en bout basé sur la synthèse du code basé sur le tacotron. Pour une version régulière de Tacotron, veuillez consulter ce dépôt.
Avec le large succès des modèles récents de texte à la carte à la disposition (TTS), des résultats prometteurs sur la synthèse de la parole réaliste ont prouvé la capacité de la machine de synthétiser des voix humaines. Cependant, peu de progrès ont été réalisés dans le domaine de la synthèse de texte vocale chinois-anglais chinois, où la machine doit apprendre à gérer à la fois l'entrée et la sortie de manière multilingue. Le changement de code se produit lorsqu'un haut-parleur alterne entre deux langues ou plus, de nos jours, les gens communiquent dans les langages de commutation de code dans la vie quotidienne, d'où les technologies du langage parlées telles que TTS doivent être développées pour gérer les entrées et la sortie multilingues.
Dans ce travail, nous présentons le Tacotron à commutation de code, qui est construit sur la base du modèle génératif de text-to-voca-text à la pointe de bout en bout (Wang et al., 2017). CS-Tacotron est capable de synthétiser la parole de commutation de code conditionnée sur le texte CS brut. Compte tenu des paires de texte et d'audio CS, notre modèle peut être formé de bout en bout avec un prétraitement des données approprié. De plus, nous formons notre modèle sur l'ensemble de données de conférences, un ensemble de données basé sur des conférences chinois-anglais basé sur le code, qui provient du traitement numérique du cours (DSP) offert à l'Université nationale de Taïwan (NTU). Nous présentons plusieurs techniques de mise en œuvre clés pour faire en sorte que le modèle de tacotron fonctionne bien sur cette tâche de génération de parole multilingue difficile. CS-Tacotron possède la capacité de générer la parole CS à partir du texte CS et parle de manière vivante avec le style du haut-parleur de la conférence.
Voir le rapport.pdf pour plus de détails de ce travail.
Les demandes de traction sont les bienvenues!
Échantillons audio de CS-Tacotron. Toutes les phrases ci-dessous sont invisibles pendant la formation.
Installez Python 3.
Installez la dernière version de Pytorch selon votre plateforme. Pour de meilleures performances, installez avec GPU Support (CUDA) si viable. Ce code fonctionne avec Pytorch 1.0 et plus tard.
(Facultatif) Installez la dernière version de TensorFlow en fonction de votre plate-forme. Cela peut être facultatif, mais pour l'instant requis pour le traitement de la parole.
Installation des exigences:
pip3 install -r requirements.txt
AVERTISSEMENT: vous devez installer Torch et Tensorflow / Tensorflow-GPU en fonction de votre plate-forme. Ici, nous énumérons la version Pytorch et TensorFlow que nous utilisons lorsque nous avons construit ce projet.
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
Remarque: Nous avons formé notre modèle sur notre propre ensemble de données: conférences. Actuellement, cet ensemble de données n'est pas disponible pour la publication publique et reste une collection privée dans le laboratoire. Voir «rapport.pdf» pour plus d'informations sur cet ensemble de données.
Téléchargez un ensemble de données de commutation de code de votre choix.
Déballer l'ensemble de données dans ~/data/text et ~/data/audio .
Après le déballage, votre arbre de données devrait ressembler à ceci pour que les chemins par défaut fonctionnent:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
Remarque: Pour la section suivante, définissez les chemins en fonction des noms de fichiers de votre ensemble de données, ce n'est qu'une démonstration de quelques exemples de données. Le format de votre ensemble de données doit correspondre aux exemples de données fournies pour que ce code fonctionne.
Prétraitez les données du texte à l'aide de SRC / Preprocess.py:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
Prétrange des données audio à l'aide de SRC / Preprocess.py:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
Visualisation des différences de prétraitement audio:
Créez des fichiers Meta prêts pour les modèles à partir de texte et d'audio à l'aide de SRC / Preprocess.py:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
Former un modèle à l'aide de SRC / Train.py
python3 train.py
Des hyperparamètres accordables se trouvent dans src / config.py. Vous pouvez ajuster ces paramètres et définir en modifiant le fichier. Les hyperparamètres par défaut sont recommandés pour les conférences et les autres données de commutation de code chinois-anglais.
Moniteur avec TensorBoardx (facultatif)
tensorboard --logdir 'path to log dir'
Le formateur déverse l'audio et les alignements toutes les 2000 étapes par défaut. Vous pouvez les trouver dans CS-tacotron/ckpt .
Nous aimerions accorder le crédit au travail de Ryuichi Yamamoto, une merveilleuse implémentation en pytorch de Tacotron, sur laquelle nous avons principalement basé notre travail.
Nous montrons le tracé d'alignement de la phase de test de notre modèle, où le premier montre l'alignement de la contribution chinoise monolingue, la seconde est la contribution chinoise-anglophone, et la troisième est respectivement l'entrée en anglais monolingue.