Este repositório contém um modelo FastSpeech2 para 8 idiomas indianos (masculino e feminino) implementados usando o alinhador forçado de Montreal (MFA) para síntese de fala. O modelo é capaz de gerar espectrogramas MEL a partir de entradas de texto e pode ser usado para sintetizar a fala.
O repositório é grande em tamanho: usamos o GIT LFS devido à restrição de tamanho do Github (instale o GIT LFS mais recente no link, fornecemos o atual abaixo).
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.python.sh | bash
sudo apt-get install git-lfs
git lfs install
Os arquivos do modelo de idioma são enviados usando o Git LFS. Então, por favor, use:
git lfs fetch --all
git lfs pull
Para obter os arquivos originais em seu diretório.
O modelo para cada idioma inclui os seguintes arquivos:
config.yaml : arquivo de configuração para o modelo FastSpeech2.energy_stats.npz : Estatísticas de energia para normalização durante a síntese.feats_stats.npz : apresenta estatísticas para normalização durante a síntese.feats_type : apresenta informações de tipo.pitch_stats.npz : estatísticas de afinação para normalização durante a síntese.model.pth : Pesos do modelo FastSpeech2 pré-treinado. environment.yml fornecido: conda env create -f environment.yml2.Activate o ambiente do CONDA (verifique o ambiente interno.yaml):
conda activate tts-mfa-hifiganconda install pytorch torchvision cudatoolkit
pip install torchaudioPara gerar arquivos WAV a partir de espectrogramas MEL, você pode usar um vocoder de sua escolha. Uma opção popular é o vocoder do Hifigan (clone este repositório e o coloque no diretório de trabalho atual). Consulte a documentação do vocoder que você escolher para obter instruções de instalação e uso.
(Usamos o vocoder hifigan e fornecemos o vocoder sintonizado nas línguas arianas e dravidianas)
Os caminhos do diretório são relativos. (Faça alterações em text_preprocess_for_inference.py e inference.py File. Atualize os caminhos da pasta/arquivo sempre que necessário.)
Por favor, dê o idioma começando com a letra e o gênero em pequenos estojos e a amostra de texto entre aspas. O argumento de saída é opcional; O nome fornecido será usado para o arquivo de saída.
Use o arquivo de inferência para sintetizar a fala das entradas de texto:
python inference.py --sample_text " Your input text here " --language < language > --gender < gender > --output_file < file_name.wav OR path/to/file_name.wav >Exemplo:
python inference.py --sample_text "श्रीलंका और पाकिस्तान में खेला जा रहा एशिया कप अब तक का सबसे विवादित टूर्नामेंट होता जा रहा है।" --language hindi --gender male --output_file male_hindi_output.wav
O arquivo será armazenado como male_hindi_output.wav e estará dentro do diretório de trabalho atual. Se -O -output_file O argumento não for dado, ele será armazenado como <language>_<gender>_output.wav no diretório de trabalho atual.
Se você usar este modelo FastSpeech2 em sua pesquisa ou trabalho, considere citar:
“Copyright 2023, Speech Technology Consortium, Bhashini, Meity e Hema A Murthy & S Umesh, Departamento de Ciência da Computação e Engenharia e Engenharia Elétrica, IIT Madras. Todos os direitos reservados"
Escudo:
Este trabalho é licenciado sob uma licença internacional Creative Commons Attribution 4.0.