[PYTHON] Synthèse vocale japonaise à partir de Tacotron2

introduction

Je pense que le plus intéressant est ce que vous pouvez faire, alors demandez d'abord ici S'il te plait donne moi.

Ce modèle est

--Transférer l'apprentissage en utilisant un modèle pré-formé

J'apprends et j'infère. Je vais vous montrer comment le faire pour ceux qui débutent.

Voici une référence pour Tacotron 2. Recherche et développement de TTS japonais (Text-to-Speech) utilisant Tacotron2 [Résumé]

Quoi préparer

Fichier audio

--22050 Hz monophonique 16 bits

Excluez les éléments bruyants, les rires et les autres éléments difficiles à transformer en texte. S'il est trop long, une erreur de mémoire peut se produire pendant l'apprentissage. Je ne fais les choses que dans les 10 secondes.

texte

train.txt Créer val.txt

Reportez-vous à ljs_audio_text_val_filelist.txt FILE PATH|TEXT Je vais l'écrire comme. J'ai un équilibre de 9: 1 entre train et val. Il ne tient pas compte de l'équilibre phonétique.

Notation phonétique

TEXT est écrit en phonèmes en référence à ce qui suit. [wiki japonais phonétique](https://ja.wikipedia.org/wiki/phonetic #Japanese phonetic) Voice Actor Statistics Corpus Sonic Balance Statement

Seul l'élément symboles.py peut être utilisé.

À ce stade, si vous entrez koNnichiwa comme point à noter, à l'intérieur de Tacotron2,['k', 'o', 'n', 'n', 'i', 'c', 'h', 'i', Converti en "w", "a"] ". Si vous voulez['k', 'o', 'N', 'n', 'i', 'ch', 'i', 'w', 'a'], utilisez {}Doit être inclus. Cependant, vous ne pouvez utiliser que les éléments devalid_symbolsdans [cmudict.py](https://github.com/NVIDIA/tacotron2/blob/master/text/cmudict.py#L6#L14). Vous devez donc direko {N} ni {CH} iwa`.

Je pense aussi que la notation telle que «k o {N} n i {CH} i w a» peut être utilisée. Je suis «konnnichiwa».

Ajout d'EOS à la fin de la phrase

Model can not converge #254 Il semble que la convergence de l'attention s'accélérera au cours de l'apprentissage.

Exemple

Je fais ça.

train.txt


/wav/0126.wav|na&tanndesukedo-.
/wav/0022.wav|biyo-inndake-yoyakuwasimasita.
/wav/0149.wav|tasikani,ari!.
/wav/0092.wav|sositara-.
/wav/0063.wav|teyu-ne.
/wav/0202.wav|donndonn,tama&tekunndesuyo.

Réglage

Modifier hparams.py

Ajout d'une décroissance exponentielle du taux d'apprentissage à train.py

Model can not converge #254

Apprentissage

Nous apprendrons en utilisant le modèle pré-entraîné. Le résultat de 10k iter. Cela a pris environ 6 heures et demie avec Colab T4. grad.norm grad.norm.png

training.loss training.loss.png

inférence

Le résultat de chaque point de contrôle. sigma = 1, débruiteur inutilisé

De plus, il est souvent placé au centre du Myo principal, qui s'appelle les Cinq Grands Myo, comme Toji. 2500|5000|7500|10000

Recommended Posts

Synthèse vocale japonaise à partir de Tacotron2
Synthèse vocale de texte de bout en bout à partir d'ESPnet2
Utiliser la synthèse vocale Windows 10 avec Python
Japonais avec matplotlib
Entrée japonaise avec pyautogui
Python à partir de Windows 7
Parler en japonais avec OpenJtalk
GRPC commençant par Python
Apprentissage amélioré à partir de Python
La vie PySpark à partir de Docker
Réseau de neurones commençant par Chainer
Analyse morphologique japonaise avec Python
Python commençant par Hello world!