Implementação de Pytorch de meta-estilos: geração de texto para fala em múltiplos falantes.


naive ) main )Você pode instalar as dependências do Python com
pip3 install -r requirements.txt
Você precisa baixar modelos pré -tenhados e colocá -los em output/ckpt/LibriTTS_meta_learner/ .
Para TTS de vários falantes ingleses, execute
python3 synthesize.py --text "YOUR_DESIRED_TEXT" --ref_audio path/to/reference_audio.wav --restore_step 200000 --mode single -p config/LibriTTS/preprocess.yaml -m config/LibriTTS/model.yaml -t config/LibriTTS/train.yaml
Os enunciados gerados serão colocados em output/result/ . Seu discurso sintetizado terá o estilo de ref_audio .
A inferência em lote também é suportada, tente
python3 synthesize.py --source preprocessed_data/LibriTTS/val.txt --restore_step 200000 --mode batch -p config/LibriTTS/preprocess.yaml -m config/LibriTTS/model.yaml -t config/LibriTTS/train.yaml
Para sintetizar todos os enunciados em preprocessed_data/LibriTTS/val.txt . Isso pode ser visto como uma reconstrução de conjuntos de dados de validação que se referem a si mesmos para o estilo de referência.
A taxa de afinação/volume/fala dos enunciados sintetizados pode ser controlada especificando as taxas desejadas de afinação/energia/duração. Por exemplo, pode -se aumentar a taxa de fala em 20 % e diminuir o volume em 20 % em
python3 synthesize.py --text "YOUR_DESIRED_TEXT" --restore_step 200000 --mode single -p config/LibriTTS/preprocess.yaml -m config/LibriTTS/model.yaml -t config/LibriTTS/train.yaml --duration_control 0.8 --energy_control 0.8
Observe que a controlabilidade é originada no FastSpeech2 e não é um interesse vital do Stylespeech. Consulte o Styler [Demo, código] para a controlabilidade de cada fator de estilo.
Os conjuntos de dados suportados são
Correr
python3 prepare_align.py config/LibriTTS/preprocess.yaml
para alguns preparativos.
Para o alinhamento forçado, o alinhador forçado de Montreal (MFA) é usado para obter os alinhamentos entre os enunciados e as seqüências de fonemas. Alinhamentos pré-extraídos para os conjuntos de dados são fornecidos aqui. Você precisa descompactar os arquivos em preprocessed_data/LibriTTS/TextGrid/ . Como alternativa, você pode executar o alinhador sozinho.
Depois disso, execute o script de pré -processamento por
python3 preprocess.py config/LibriTTS/preprocess.yaml
Treine seu modelo com
python3 train.py -p config/LibriTTS/preprocess.yaml -m config/LibriTTS/model.yaml -t config/LibriTTS/train.yaml
Conforme descrito no artigo, o script começará no pré-treinamento do modelo ingênuo até que meta_learning_warmup etapas e depois meta o modelo para etapas adicionais por meio de treinamento episódico.
Usar
tensorboard --logdir output/log/LibriTTS
Para servir o Tensorboard em sua localhost. As curvas de perda, os espectrogramas MEL sintetizados e os áudios são mostrados.



22050Hz em vez de 16kHz .80 a 128 .28.197M .16 lote no treinamento em vez de 48 ou 20 principalmente devido à falta de capacidade de memória com um único 24GIB Titan-RTX . Isso pode ser alcançado pelo script a seguir para filtrar dados mais longos que max_seq_len : python3 filelist_filtering.py -p config/LibriTTS/preprocess.yaml -m config/LibriTTS/model.yaml
train_filtered.txt no mesmo local do train.txt . @misc{lee2021stylespeech,
author = {Lee, Keon},
title = {StyleSpeech},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/keonlee9420/StyleSpeech}}
}