Você pode construir um ambiente com Docker ou Conda .
Se você não tiver instalado o Docker, siga os links para encontrar instruções de instalação para o Ubuntu, Mac ou Windows.
Construa a imagem do Docker:
docker build -t emospeech .
Execute a imagem do Docker:
bash run_docker.sh
Se você não tiver o CONDA instalado, encontre as instruções de instalação para o seu sistema operacional aqui.
conda create -n etts python=3.10
conda activate etts
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117
pip install -r requirements.txt
Se você tiver uma versão diferente do CUDA em sua máquina, poderá encontrar o link aplicável para a instalação do Pytorch aqui.
Utilizamos dados de 10 falantes de inglês do conjunto de dados ESD. Para baixar todos os arquivos .wav , .txt junto com arquivos .TextGrid criados usando o MFA:
bash download_data.sh
Para treinar um modelo, precisamos de durações pré -computadas, energia, arremesso e recursos do EGEMAP. Do diretório src Run:
python -m src.preprocess.preprocess
É assim que sua pasta de dados deve parecer:
.
├── data
│ ├── ssw_esd
│ ├── test_ids.txt
│ ├── val_ids.txt
└── └── preprocessed
├── duration
├── egemap
├── energy
├── mel
├── phones.json
├── pitch
├── stats.json
├── test.txt
├── train.txt
├── trimmed_wav
└── val.txt
config/config.py .python -m src.scripts.train .Os testes são implementados no subconjunto de teste do conjunto de dados ESD. Para sintetizar o áudio e calcular os MOS neurais (NISQA TTS):
config/config.py na Inference .python -m src.scripts.test . Você pode encontrar o NISQA TTS para áudio original, reconstruído e gerado em test.log .
A emospech é treinada em sequências de fonemas. Os telefones suportados podem ser encontrados em data/preprocessed/phones.json . Este repositroy é criado para pesquisas acadêmicas e não suporta conversão automática de grafema em phonema. No entanto, se você deseja sintetizar a frase arbitrária com condicionamento de emoções, pode:
Gerar sequência de fonemas a partir de grafemas com MFA.
1.1 Siga o guia de instalação
1.2 Download de inglês G2P Modelo: mfa model download g2p english_us_arpa
1.3 gerar phoneme.txt a partir de graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Run python -m src.scripts.inference , especificando argumentos:
| ARMGEM | Significado | Valores possíveis | Valor padrão |
|---|---|---|---|
-sq | Sequência de fonemas para Synthesisze | Encontre em data/phones.json . | Não definido, argumento necessário. |
-emo | Id da emoção de voz desejada | 0: Neutro, 1: Angry, 2: feliz, 3: triste, 4: surpresa. | 1 |
-sp | ID da voz do alto -falante | De 1 a 10, corresponda a 0011 ... 0020 na notação original de ESD. | 5 |
-p | Caminho onde salvar áudio sintetizado | Qualquer uma com extensão .wav . | generation_from_phoneme_sequence.wav |
Por exemplo
python -m src.scripts.inference --sq "S P IY2 K ER1 F AY1 V T AO1 K IH0 NG W IH0 TH AE1 NG G R IY0 IH0 M OW0 SH AH0 N"
Se o arquivo de resultado não estiver sintetizado, verifique inference.log para os telefones Oov.