Black technology based on the three giants of artificial intelligence:
OpenAI's whisper, 680,000 hours in multiple languages
Nvidia's bigvgan, anti-aliasing for speech generation
Microsoft's adapter, high-efficiency for fine-tuning
Lora no se implementa completamente en este proyecto , pero se puede encontrar aquí: Lora TTS & Paper
Use el modelo de pretrin para ajustar la sintonía
Preprocesamiento necesario:
Luego coloque el conjunto de datos en el directorio data_raw de acuerdo con la siguiente estructura del archivo
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 dependencia del software
PIP install -r requisitos.txt
2 speaker_pretrain/ el codificador timbre: best_model.pth.tar
3 Descargar el modelo Whisper Model Múltiple Modelo medio, asegúrese de descargar medium.pt , Póngalo en whisper_pretrain/
Consejo: Whisper está incorporado, no lo instale adicionalmente, entrará en conflicto e informará un error
4 Descargar el modelo Pretrain maxgan_pretrain_32k.pth y hacer prueba
Python svc_inference.py --config configs/maxgan.yaml --model maxgan_pretrain_32k.pth --spk ./configs/singers/singer0001.npy -wave test.wav
Use este comando si desea automatizar esto:
python3 preparar/easyprocess.py
o paso a paso, como sigue:
1, re-muestreo
Genere audio con una tasa de muestreo de 16000Hz
Python Prepare/Preprocess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
Genere audio con una tasa de muestreo de 32000Hz
Python Prepare/Preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2, use un audio de 16k para extraer tono
Python Prepare/Preprocess_F0.Py -W Data_SVC/Waves -16k/-P data_SVC/Pitch
3 , Use audio de 16k para extraer PPG
Python Prepare/Preprocess_ppg.py -w data_svc/waves -16k/-p data_svc/whisper
4 , Use el audio de 16k para extraer el código TIMBRE
Python Prepare/Preprocess_Speaker.py data_svc/waves-16k/data_svc/altave
5, extraiga el código del cantante para inferencia
Python Prepare/Preprocess_Speaker_ave.py data_svc/sheaker/data_svc/singer
6, use 32k audio para generar el índice de capacitación
Python Prepare/Preprocess_train.py
7, depuración de archivos de capacitación
Python Prepare/Preprocess_zzz.py -C Configs/maxgan.yaml
data_svc/
└── waves-16k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── waves-32k
│ └── speaker0
│ │ ├── 000001.wav
│ │ └── 000xxx.wav
│ └── speaker1
│ ├── 000001.wav
│ └── 000xxx.wav
└── pitch
│ └── speaker0
│ │ ├── 000001.pit.npy
│ │ └── 000xxx.pit.npy
│ └── speaker1
│ ├── 000001.pit.npy
│ └── 000xxx.pit.npy
└── whisper
│ └── speaker0
│ │ ├── 000001.ppg.npy
│ │ └── 000xxx.ppg.npy
│ └── speaker1
│ ├── 000001.ppg.npy
│ └── 000xxx.ppg.npy
└── speaker
│ └── speaker0
│ │ ├── 000001.spk.npy
│ │ └── 000xxx.spk.npy
│ └── speaker1
│ ├── 000001.spk.npy
│ └── 000xxx.spk.npy
└── singer
├── speaker0.spk.npy
└── speaker1.spk.npy0 , Si el ajuste en función del modelo previamente capacitado, debe descargar el modelo previamente capacitado: maxgan_pretrain_32k.pth
Establecer Pretrain: "./maxgan_pretrain_32k.pth" en config/maxgan.yaml, y ajuste la tasa de aprendizaje adecuadamente, por ejemplo, 1e-5
1 , Empiece a entrenar
python svc_trainer.py -c configs/maxgan.yaml -n svc
2, capacitación de reanudación
python svc_trainer.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***. Pth
3 , Ver registro
TensorBoard -Logdir Logs/

Use este comando si desea una GUI que haga todos los comandos a continuación:
python3 svc_gui.py
o paso a paso, como sigue:
1, modelo de inferencia de exportación
Python svc_export.py - -Config Configs/maxgan.yaml --checkpoint_path chkpt/svc/***. PT
2 , Use Whisper para extraer la codificación de contenido, sin usar un razonamiento de un solo clic, para reducir el uso de la memoria de GPU
Python Whisper/Inference.py -W test.wav -p test.ppg.npy
3 , Extraiga el parámetro F0 al formato de texto CSV
Python Pitch/Inference.py -W test.wav -p test.csv
4, especifique parámetros e inferir
python svc_inference.py --config configs/maxgan.yaml --model maxgan_g.pth --spk ./data_svc/singers/your_singer.npy -wave test.wav --ppg test.ppg.npy -pit test.csv
Cuando se especifica --ppg, cuando el mismo audio se razona varias veces, puede evitar la extracción repetida de los códigos de contenido de audio; Si no se especifica, se extraerá automáticamente;
Cuando se especifica - -Pit, el parámetro F0 sintonizado manualmente se puede cargar; Si no se especifica, se extraerá automáticamente;
Genere archivos en el directorio actual: svc_out.wav
| argumentos | --config | --modelo | --spk | --ola | -ppg | --fosa | --cambio |
|---|---|---|---|---|---|---|---|
| nombre | ruta de configuración | ruta modelo | vocero | entrada de onda | PPG de onda | tono de onda | turno de lanzamiento |
5, Publicado por Vad
python svc_inference_post.py --ref test.wav --svc svc_out.wav --out svc_post.wav
Extensión basada en el adaptador del modelo de texto a voz de múltiples altavoces para nuevos altavoces
ADASPEECH: texto adaptativo a discurso para una voz personalizada
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/mindslab-ai/univnet [papel]
https://github.com/openai/whisper/ [papel]
https://github.com/nvidia/bigvgan [papel]