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 ist in diesem Projekt nicht vollständig implementiert , aber es finden Sie hier: Lora TTS & Paper
Verwenden Sie das Vorbereitungsmodell, um eine feine Stimmung
Notwendige Vorverarbeitung:
Geben Sie den Datensatz dann gemäß der folgenden Dateistruktur in das Verzeichnis data_raw ein
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 Softwareabhängigkeit
PIP Installation -r Anforderungen.txt
2 Download den Timbre-Encoder: Lautsprecher-Coder von @müller91, Put best_model.pth.tar in speaker_pretrain/
3 Download Whisper Model Multiple Language Mediummodell, stellen Sie sicher, dass Sie medium.pt herunterladen whisper_pretrain/
TIPP: Whisper ist integriert, installieren Sie ihn nicht zusätzlich, es wird konflikt
4 Download Pretrain Model MAXGAN_PRETRAIN_32K.PTH, und Test durchführen
python svc_inference.py ---config configs/maxgan.yaml ---model maxgan_petrrain_32k.tth -spk ./configs/singer0001.npy ---wave test.wav
Verwenden Sie diesen Befehl, wenn Sie dies automatisieren möchten:
Python3 vorbereiten/easyProcess.py
oder Schritt für Schritt wie folgt:
1 , Wiederabtastung
Generieren Sie Audio mit einer Stichprobenrate von 16000 Hz
python prepe/precess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
Generieren Sie Audio mit einer Stichprobenrate von 32000 Hz
python prepe/precess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2 , Verwenden Sie 16K Audio, um Tonhöhe zu extrahieren
Python prepe/precess_f0.py -W data_svc/waves -16k/-p data_svc/pitch
3 , Verwenden Sie 16K -Audio, um PPG zu extrahieren
python prepe/precess_ppg.py -W data_svc/waves -16k/-p data_svc/whisper
4 , Verwenden Sie 16K Audio, um Timbre -Code zu extrahieren
python prepe/precess_speaker.py data_svc/waves-16k/data_svc/sprecher
5 , extrahieren Sie den Sängercode für Inferenz
python prepe/precess_speaker_ave.py data_svc/sprecher/data_svc/sänger
6 , Verwenden Sie 32K -Audio, um den Trainingsindex zu generieren
python prepe/precess_train.py
7 , Schulungsdatei -Debugging
python prepe/precess_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 , Wenn die Feinabstimmung basierend auf dem vorgeborenen Modell basiert, müssen Sie das vorgebildete Modell herunterladen: maxgan_prerain_32k.PTH
Setzen Sie Pretrain: "./maxgan_prain_32k.pth" in configs/maxgan.yaml , und passen Sie die Lernrate angemessen an, z. B. 1E-5
1 , Beginnen Sie mit dem Training
python svc_trainer.py -c configs/maxgan.yaml -n SVC
2 , Schulung des Trainings
python svc_trainer.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***. PTH
3 , Protokoll anzeigen
Tensorboard -Logdir -Protokolle/

Verwenden Sie diesen Befehl, wenn Sie eine GUI möchten, die alle folgenden Befehle erledigt:
Python3 SVC_GUI.PY
oder Schritt für Schritt wie folgt:
1 , Inferenzmodell exportieren
python svc_export.py - -config configs/maxgan.yaml -Checkpoint_Path chkpt/svc/***. pt
2 , Verwenden Sie Whisper, um die Inhaltscodierung zu extrahieren, ohne ein Klick zu verwenden, um die Verwendung von GPU-Speicher zu reduzieren
python wißsper/inference.py -w test.wav -p test.ppg.npy
3 , extrahieren Sie den F0 -Parameter in das CSV -Textformat
Python Pitch/Inferenz.py -W Test.wav -p test.csv
4 , Geben Sie Parameter an und schließen Sie ab
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.csvy
Wenn -PPG angegeben ist, kann dies, wenn dieselbe Audio mehrmals begründet wird, eine wiederholte Extraktion von Audioinhaltscodes vermeiden. Wenn es nicht angegeben ist, wird es automatisch extrahiert.
Wenn -Schnitt angegeben ist, kann der manuell abgestimmte F0 -Parameter geladen werden. Wenn nicht angegeben, wird es automatisch extrahiert.
Generieren Sie Dateien im aktuellen Verzeichnis: svc_out.wav
| Args | -Konfiguration | --Modell | -spk | --Welle | --ppg | --Grube | --Schicht |
|---|---|---|---|---|---|---|---|
| Name | Konfigurationsweg | Modellpfad | Lautsprecher | Welleneingang | Wave ppg | Wellenhöhe | Pitch -Verschiebung |
5, Post von VAD
Python SVC_Inference_Post.py -Ref test.wav - -SVC SVC_OUT.WAV -OUT SVC_POST.WAV
Adapterbasierte Erweiterung des Multi-Speaker-Text-zu-Sprach-Modells für neue Sprecher
Adaspeech: Adaptiver Text zur Sprache für benutzerdefinierte Stimme
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/mindslab-ai/univnet [Paper]
https://github.com/openai/whisper/ [Papier]
https://github.com/nvidia/bigvgan [Papier]