Nota: Ya no estoy trabajando en este proyecto. Ver #9.
Este trabajo se inspira en el modelo M-CNN descrito en la inversión de espectrograma rápido utilizando redes neuronales convolucionales de cabeza múltiple. Los autores muestran que incluso una simple red de muestreo es suficiente para síntesis de la forma de onda del espectrograma/espectrograma MEL.
En este repositorio, utilizo la función de espectrograma para el modelo de entrenamiento porque contiene más información que la función de espectrograma MEL. Sin embargo, debido a que la transformación del espectrograma al espectrograma MEL es solo una proyección lineal, por lo que básicamente puede entrenar una red simple de predecir el espectrograma del espectrograma MEL. También puede cambiar los parámetros para poder entrenar a un vocoder de la función MEL-Spectrogram también.
Compare con M-CNN, mi red propuesta tiene algunas diferencias:
$ pip install -r requirements.txtUtilizo el conjunto de datos LJSPEECH para mi experimento. Si aún no lo tiene, descargue el conjunto de datos y colóquelo en algún lugar.
Después de eso, puede ejecutar el comando para generar un conjunto de datos para nuestro experimento:
$ python preprocessing.py --samples_per_audio 20
--out_dir ljspeech
--data_dir path/to/ljspeech/dataset
--n_workers 4$ python train.py --out_dir ${output_directory}Para más opciones de capacitación, ejecute:
$ python train.py --help$ python gen_spec.py -i sample.wav -o out.npz$ python synthesis.py --model_path path/to/checkpoint
--spec_path out.npz
--out_path out.wavPuedes obtener mi modelo previamente capacitado aquí.
Esta implementación utiliza código de Nvidia, Ryuichi Yamamoto, Keith Ito como se describe en mi código.
MIT