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 não está totalmente implementada neste projeto , mas pode ser encontrada aqui: Lora TTS & Paper
Use o modelo de pré -atrain para ajustar
Pré-processamento necessário:
Em seguida, coloque o conjunto de dados no diretório Data_raw de acordo com a seguinte estrutura de arquivo
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 dependência de software
pip install -r requisitos.txt
2 Faça o download do codificador Timbre: Ocoder de alto-falante por @mueller91, coloque best_model.pth.tar no speaker_pretrain/
3 Download Modelo de Whisper Modelo de múltiplas idiomas Modelo, certifique -se de baixar medium.pt , Coloque -o em whisper_pretrain/
Dica: o sussurro está embutido, não o instale adicionalmente, ele entrará em conflito e relatará um erro
4 Baixe o modelo de pré -rAin maxgan_pretrain_32k.tth, e faça testes
python svc_inference.py -Configs/maxgan.yaml ---model maxgan_pretrain_32k.pth -spk ./configs/singers/singer0001.npy -wave test.wav.wav
Use este comando se desejar automatizar isso:
python3 preparar/easyprocess.py
ou passo a passo, como segue:
1 , re-amostragem
gerar áudio com uma taxa de amostragem de 16000Hz
python preparar/preprocess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
gerar áudio com uma taxa de amostragem de 32000Hz
python preparar/preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2 , Use 16k áudio para extrair pitch
python preparar/preprocess_f0.py -w data_svc/onda -16k/-p data_svc/pitch
3 , Use 16k áudio para extrair PPG
python preparar/preprocess_ppg.py -w data_svc/onda -16k/-p data_svc/sussurro
4 , Use 16k áudio para extrair código timbre
python preparar/preprocess_speaker.py data_svc/onda-16k/data_svc/speaker
5 , Extrair o código do cantor para inferência
python preparar/preprocess_speaker_ave.py data_svc/speaker/data_svc/cantor
6 , Use 32K Audio para gerar Índice de Treinamento
Python preparar/preprocess_train.py
7 , depuração de arquivos de treinamento
python preparar/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 , Se o ajuste fino com base no modelo pré-treinado, você precisa baixar o modelo pré-treinado: maxgan_pretrain_32k.tth
Definir pretain: "./maxgan_pretrain_32k.pth" em configs/maxgan.yaml , e ajuste a taxa de aprendizado adequadamente, por exemplo, 1e-5
1 , Comece a treinar
python svc_trainener.py -c configs/maxgan.yaml -n svc
2 , retomar o treinamento
python svc_trainener.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***.
3 , Ver log
Tensorboard -Logdir Logs/

Use este comando se desejar uma GUI que faça todos os comandos abaixo:
python3 svc_gui.py
ou passo a passo, como segue:
1 , Modelo de inferência de exportação
python svc_export.py -config configs/maxgan.yaml --checkpoint_path chkpt/svc/***.
2 , Use Whisper para extrair a codificação de conteúdo, sem usar o raciocínio de um clique, a fim de reduzir o uso da memória da GPU
python sussurro/inference.py -w test.wav -p test.ppg.npy
3 , Extrair o parâmetro F0 para o formato de texto CSV
python pitch/inference.py -w test.wav -p test.csv
4 , Especifique parâmetros e inferir
python svc_inference.py -Configs/maxgan.yaml ---model maxgan_g.pth -spk ./data_svc/singers/your_singer.npy ---kave test.wav --pg test.ppg.npy -pit test.csv
Quando --ppg é especificado, quando o mesmo áudio é fundamentado várias vezes, pode evitar a extração repetida dos códigos de conteúdo de áudio; Se não for especificado, será extraído automaticamente;
Quando - -pit é especificado, o parâmetro F0 sintonizado manualmente pode ser carregado; Se não for especificado, ele será extraído automaticamente;
Gere arquivos no diretório atual: svc_out.wav
| args | -Config | --modelo | --spk | --aceno | --ppg | --poço | --mudança |
|---|---|---|---|---|---|---|---|
| nome | caminho de configuração | Caminho do modelo | palestrante | entrada de onda | Ondas ppg | tom de onda | mudança de pitch |
5, postagem por Vad
python svc_inference_post.py --ef test.wav -svc svc_out.wav -out svc_post.wav
Extensão baseada em adaptador do modelo de texto em fala de vários falantes para novos alto-falantes
AdasPeech: texto adaptável à fala para 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 [Paper]