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'est pas entièrement mise en œuvre dans ce projet , mais elle peut être trouvée ici: Lora TTS & Paper
Utilisez le modèle Pretrain pour affiner
Pré-traitement nécessaire:
Ensuite, placez l'ensemble de données dans le répertoire DATA_RAW selon la structure de fichier suivante
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 dépendance logicielle
pip install -r exigences.txt
2 Téléchargez l'encodeur de timbre: encodeur en haut-parleur par @ mueller91, mettez best_model.pth.tar dans speaker_pretrain/
3 Téléchargez le modèle de chuchotement multiple modèle de langue multiple, assurez-vous de télécharger medium.pt , Mettez-le dans whisper_pretrain/
Astuce: Whisper est intégré, ne l'installez pas en plus, il sera en conflit et signalera une erreur
4 Téléchargez le modèle Pretrain Maxgan_pretrain_32k.pth, et testez
python svc_inference.py --config configs / maxgan.yaml ---model maxgan_pretrain_32k.pth - spk ./configs/singers/singer0001.npy --wave test.wav
Utilisez cette commande si vous souhaitez automatiser ceci:
python3 prépare / easyprocess.py
ou étape par étape, comme suit:
1 , réchantillonnage
Générer l'audio avec un taux d'échantillonnage de 16000 Hz
Python prépare / prerocess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
Générer l'audio avec un taux d'échantillonnage de 32000 Hz
Python Prepare / Preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2 , Utilisez l'audio 16K pour extraire la hauteur
Python Prepare / Preprocess_F0.py -W Data_SVC / WAVES-16K / -P DATA_SVC / Pitch
3 , Utilisez l'audio 16K pour extraire PPG
Python Prepare / Preprocess_ppg.py -W DATA_SVC / WAVES-16K / -P DATA_SVC / WHUSPER
4 , Utilisez l'audio 16K pour extraire le code de timbre
python prépare / prerocess_speaker.py data_svc / waves-16k / data_svc / haut-parleur
5 , Extraire le code du chanteur pour l'inférence
Python prépare / prerocess_speaker_ave.py data_svc / haut-parleur / data_svc / chanteur
6 , Utilisez 32k audio pour générer un index de formation
python prépare / prerocess_train.py
7 , Débogage des fichiers de formation
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 un réglage fin basé sur le modèle pré-formé, vous devez télécharger le modèle pré-formé: maxgan_pretrain_32k.pth
Réglez Pretrain: "./maxgan_pretrain_32k.pth" dans configs / maxgan.yaml , et ajustez le taux d'apprentissage de manière appropriée, par exemple 1e-5
1 , commencer la formation
python svc_trainer.py -c configs / maxgan.yaml -n svc
2 , CV Formation
python svc_trainer.py -c configs / maxgan.yaml -n svc -p chkpt / svc / ***. pth
3 , Afficher le journal
Tensorboard - Logdir Logs /

Utilisez cette commande si vous voulez une interface graphique qui fait toutes les commandes ci-dessous:
python3 svc_gui.py
ou étape par étape, comme suit:
1 , Modèle d'inférence à l'exportation
python svc_export.py - config configs / maxgan.yaml --checkpoint_path chkpt / svc / ***. pt
2 , Utilisez Whisper pour extraire le codage du contenu, sans utiliser de raisonnement en un clic, afin de réduire l'utilisation de la mémoire GPU
python whisper / inference.py -w test.wav -p test.ppg.npy
3 , Extraire le paramètre F0 au format de texte CSV
python pitch / inference.py -w test.wav -p test.csv
4 , Spécifiez les paramètres et déduisez
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
Lorsque --ppg est spécifié, lorsque le même audio est raisonné plusieurs fois, il peut éviter l'extraction répétée des codes de contenu audio; S'il n'est pas spécifié, il sera automatiquement extrait;
Lorsque - Pit est spécifié, le paramètre F0 réglé manuellement peut être chargé; S'il n'est pas spécifié, il sera automatiquement extrait;
générer des fichiers dans le répertoire actuel: svc_out.wav
| args | - Configager | --modèle | - Spk | --vague | --ppg | --fosse | --changement |
|---|---|---|---|---|---|---|---|
| nom | chemin de configuration | chemin du modèle | conférencier | entrée d'onde | vague ppg | pas de vague | changement de pas |
5, post par VAD
python svc_inference_post.py --ref test.wav - svc svc_out.wav --out svc_post.wav
Extension basée sur l'adaptateur du modèle de texte vocale multi-haut-parleurs pour les nouveaux haut-parleurs
Adaspeech: texte adaptatif à la parole pour une voix personnalisée
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/minslab-ai/univnet [papier]
https://github.com/openai/whisper/ [papier]
https://github.com/nvidia/bigvgan [papier]