Puede construir un entorno con Docker o Conda .
Si no tiene instalado Docker, siga los enlaces para encontrar instrucciones de instalación para Ubuntu, Mac o Windows.
Build Docker Imagen:
docker build -t emospeech .
Ejecutar la imagen de Docker:
bash run_docker.sh
Si no tiene CondA instalado, busque las instrucciones de instalación para su sistema operativo aquí.
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
Si tiene una versión diferente de CUDA en su máquina, puede encontrar el enlace aplicable para la instalación de Pytorch aquí.
Utilizamos datos de 10 hablantes de inglés del conjunto de datos ESD. Para descargar todos los archivos .wav , .txt junto con los archivos .TextGrid creados usando MFA:
bash download_data.sh
Para capacitar a un modelo, necesitamos duraciones precomputadas, energía, tono y características de egemap. Desde el directorio src Run:
python -m src.preprocess.preprocess
Así es como debería ser su carpeta de datos:
.
├── 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 .Las pruebas se implementan en el subconjunto de pruebas del conjunto de datos ESD. Para sintetizar audio y calcular MOS neural (NISQA TTS):
config/config.py en la sección Inference .python -m src.scripts.test . Puede encontrar TTS NISQA para audio original, reconstruido y generado en test.log .
El emospeche está entrenado en secuencias de fonemas. Los teléfonos compatibles se pueden encontrar en data/preprocessed/phones.json . Este repositroy se crea para la investigación académica y no admite la conversión automática de grafema a fonema. Sin embargo, si desea sintetizar una oración arbitraria con condicionamiento emocional, puede:
Genere la secuencia de fonemas a partir de grafemas con MFA.
1.1 Siga la guía de instalación
1.2 Descargar English G2P Modelo: mfa model download g2p english_us_arpa
1.3 Generar Phoneme.txt de Graphemes.txt: mfa g2p graphemes.txt english_us_arpa phoneme.txt
Ejecutar python -m src.scripts.inference , especificando argumentos:
| Enriqueza | Significado | Valores posibles | Valor predeterminado |
|---|---|---|---|
-sq | Secuencia de fonema a Synthesisze | Encontrar en data/phones.json . | No establecido, argumento requerido. |
-emo | Id de emoción de voz deseada | 0: Neutral, 1: enojado, 2: feliz, 3: triste, 4: sorpresa. | 1 |
-sp | Id de voz del altavoz | Del 1 al 10, corresponde a 0011 ... 0020 en la notación de ESD original. | 5 |
-p | Ruta donde guardar audio sintetizado | Cualquiera con extensión .wav . | Generation_From_Phoneme_Sequence.wav |
Por ejemplo
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"
Si el archivo de resultados no se sintetiza, verifique inference.log para teléfonos OOV.