Este es un marco modularizado de texto a voz con el objetivo de admitir investigaciones rápidas y desarrollos de productos. Las características principales incluyen
Las contribuciones son bienvenidas.
Mira la demostración aquí 
git clone https://github.com/ranchlai/mandarin-tts.git
cd mandarin-tts
git submodule update --force --recursive --init --remote
pip install -e . f
Aquí se proporcionan dos ejemplos: Biaobei y Aishell3.
Para entrenar sus propios modelos, primero haga una copia de los ejemplos existentes, luego prepare las características de melspectrogram usando wav2mel.py por
cd examples
python wav2mel.py -c ./aishell3/config.yaml -w < aishell3_wav_folder > -m < mel_folder > -d cpuPrepare los archivos SCP necesarios para la capacitación,
cd examples/aishell3
python prepare.py --wav_folder < aishell3_wav_folder > --mel_folder < mel_folder > --dst_folder ./train/Esto generará archivos SCP requeridos por config.yaml (en la sección de conjunto de datos/trenes). También necesitaría verificar que todo esté bien en el archivo de configuración. Por lo general, no necesita cambiar el código.
Ahora puedes comenzar tu entrenamiento por
cd examples/aishell3
python ../../mtts/train.py -c config.yaml -d cudaPara el conjunto de datos de Biaobei, el flujo de trabajo es el mismo, excepto que no hay una inclusión de altavoces, pero puede agregar una incrustación de prosodia.
Se agregarán más ejemplos. Por favor, quédese.
Actualmente se proporcionan dos ejemplos, y los puntos de control/configuraciones correspondientes se resumen de la siguiente manera.
| conjunto de datos | control | configuración |
|---|---|---|
| Aishell3 | enlace | enlace |
| biaobei | enlace | enlace |
Los vocoders juegan el papel de convertir melspectrograms en formas de onda. Se agregan como submódulos y serán capacitados en este proyecto. Por lo tanto, debe descargar los puntos de control antes de sintetizar. En la capacitación, los vocoders no son necesarios, ya que puede monitorear el proceso de capacitación a partir de melspectrogramas generados y también la curva de pérdida. Actual apoyamos a los siguientes vocoders,
| Vocero | control | github |
|---|---|---|
| Resplandor de onda | enlace | enlace |
| hifi-gan | enlace | enlace |
| Vocgan | enlace | enlace |
| Melgan | enlace | enlace |
Todos los Vocoders estarán listos después de ejecutar git submodule update --force --recursive --init --remote . Sin embargo, debe descargar el punto de control manualmente y establecer correctamente la ruta en el archivo config.yaml.
Input.txt debe ser consistente con su configuración de EMB_TYPE1 a EMB_TYPE_N en el archivo de configuración, es decir, mismo tipo, mismo orden.
Para facilitar la transcripción de Hanzi a Pinyin, puede probar:
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
No puede copiar el texto a Input.txt y recuerde dejar el nombre autodefinado y la ID de altavoz, separado por '|'.
Con los puntos de control anteriores y el texto listos, finalmente puede ejecutar el proceso de síntesis,
python ../../mtts/synthesize.py -d cuda --c config.yaml --checkpoint ./checkpoints/checkpoint_1240000.pth.tar -i input.txtConsulte el archivo config.yaml para ver la configuración de Vocoder.
Si tiene suerte, se pueden encontrar ejemplos de audio en la carpeta de salida.