Esta é uma estrutura modularizada de texto em fala, com o objetivo de apoiar pesquisas rápidas e desenvolvimentos de produtos. Os principais recursos incluem
Contribuições são bem -vindas.
Confira a demonstração aqui
git clone https://github.com/ranchlai/mandarin-tts.git
cd mandarin-tts
git submodule update --force --recursive --init --remote
pip install -e . f
Dois exemplos são fornecidos aqui: Biaobei e Aishell3.
Para treinar seus próprios modelos, primeiro faça uma cópia dos exemplos existentes e, em seguida, prepare os recursos do Melspectrograma usando wav2mel.py por
cd examples
python wav2mel.py -c ./aishell3/config.yaml -w < aishell3_wav_folder > -m < mel_folder > -d cpuPrepare os arquivos SCP necessários para o treinamento,
cd examples/aishell3
python prepare.py --wav_folder < aishell3_wav_folder > --mel_folder < mel_folder > --dst_folder ./train/Isso gerará arquivos SCP exigidos pelo config.yaml (na seção de dados/trem). Você também precisaria verificar se está tudo bem no arquivo de configuração. Geralmente você não precisa alterar o código.
Agora você pode começar seu treinamento por
cd examples/aishell3
python ../../mtts/train.py -c config.yaml -d cudaPara o conjunto de dados Biaobei, o fluxo de trabalho é o mesmo, exceto que não há incorporação de alto -falante, mas você pode adicionar a incorporação de prosódia.
Mais exemplos serão adicionados. Por favor, fique.
Atualmente, dois exemplos são fornecidos e os pontos de verificação/configurações correspondentes estão resumidos da seguinte forma.
| conjunto de dados | Ponto de verificação | Config |
|---|---|---|
| Aishell3 | link | link |
| Biaobei | link | link |
Os vocoders desempenham o papel de converter melspectrogramas em formas de onda. Eles são adicionados como submódulos e serão treinados neste projeto. Portanto, você deve baixar os pontos de verificação antes de sintetizar. No treinamento, os vocoders não são necessários, pois você pode monitorar o processo de treinamento a partir de Melspectrogramas gerados e também a curva de perda. Atualmente, apoiamos os seguintes vocoders,
| Vocoder | Ponto de verificação | Github |
|---|---|---|
| Waveglow | link | link |
| Hifi-Gan | link | link |
| Vocgan | link de link | link |
| Melgan | link | link |
Todos os vocoders estarão prontos após a execução git submodule update --force --recursive --init --remote . No entanto, você deve baixar o ponto de verificação manualmente e definir adequadamente o caminho no arquivo config.yaml.
O input.txt deve ser consistente com a sua configuração de EMB_TYPE1 para EMB_TYPE_N no arquivo de configuração, ou seja, mesmo tipo, mesmo pedido.
Para facilitar a transcrição de Hanzi para Pinyin, você pode tentar:
cd examples/aishell3/
python ../../mtts/text/gp2py.py -t "为适应新的网络传播方式和读者阅读习惯"
>> sil wei4 shi4 ying4 xin1 de5 wang3 luo4 chuan2 bo1 fang1 shi4 he2 du2 zhe3 yue4 du2 xi2 guan4 sil|sil 为 适 应 新 的 网 络 传 播 方 式 和 读 者 阅 读 习 惯 sil
Não é possível copiar o texto para input.txt e lembre-se de colocar o nome autodefinido e o ID do alto-falante, separados por '|'.
Com os pontos de verificação acima e o texto pronto, finalmente você pode executar o processo de síntese,
python ../../mtts/synthesize.py -d cuda --c config.yaml --checkpoint ./checkpoints/checkpoint_1240000.pth.tar -i input.txtVerifique o arquivo config.yaml para as configurações do vocoder.
Se for sortudo, os exemplos de áudio podem ser encontrados na pasta de saída.