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 tidak sepenuhnya diimplementasikan dalam proyek ini , tetapi dapat ditemukan di sini: lora tts & paper
Gunakan model pretrain untuk menyempurnakan
Pra-pemrosesan yang diperlukan:
Kemudian masukkan dataset ke dalam direktori data_raw sesuai dengan struktur file berikut
data_raw
├───speaker0
│ ├───000001.wav
│ ├───...
│ └───000xxx.wav
└───speaker1
├───000001.wav
├───...
└───000xxx.wav1 Ketergantungan Perangkat Lunak
Pip instal -r persyaratan.txt
2 Unduh timbre encoder: speaker-encoder oleh @mueller91, letakkan best_model.pth.tar ke speaker_pretrain/
3 Unduh Model Whisper Model Meri Medium Bahasa, Pastikan untuk Mengunduh medium.pt , Masukkan ke dalam whisper_pretrain/
Kiat: Whisper adalah built-in, jangan menginstalnya juga, itu akan bertentangan dan melaporkan kesalahan
4 Unduh model pretrain maxgan_prain_32k.pth, dan lakukan tes
python svc_inference.py --config configs/maxgan.yaml ---dokel maxgan_prain_32k.pth --pk ./configs/singers/singer0001.npy --vave test.wav
Gunakan perintah ini jika Anda ingin mengotomatiskan ini:
python3 mempersiapkan/mudah diprocess.py
atau langkah demi langkah, sebagai berikut:
1, pengambilan sampel ulang
Hasilkan audio dengan laju pengambilan sampel 16000Hz
Python Siapkan/preprocess_a.py -w ./data_raw -o ./data_svc/waves-16k -s 16000
Hasilkan audio dengan laju pengambilan sampel 32000Hz
Python Siapkan/preprocess_a.py -w ./data_raw -o ./data_svc/waves-32k -s 32000
2, Gunakan audio 16k untuk mengekstraksi pitch
Python Siapkan/preprocess_f0.py -W data_svc/waves -16k/-p data_svc/pitch
3, Gunakan audio 16k untuk mengekstrak PPG
Python Siapkan/preprocess_ppg.py -W data_svc/waves -16k/-p data_svc/Whisper
4, Gunakan Audio 16K untuk mengekstrak kode Timbre
Python Siapkan/preprocess_speaker.py data_svc/waves-16k/data_svc/speaker
5 , Ekstrak kode penyanyi untuk inferensi
Python Siapkan/Preprocess_speaker_ave.py data_svc/speaker/data_svc/penyanyi
6 , Gunakan audio 32k untuk menghasilkan indeks pelatihan
Python menyiapkan/preprocess_train.py
7, Debugging File Pelatihan
Python Siapkan/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, Jika fine-tuning berdasarkan model pra-terlatih, Anda perlu mengunduh model pra-terlatih: maxgan_prain_32k.pth
Setel pretrain: "./maxgan_prain_32k.pth" di configs/maxgan.yaml , dan sesuaikan tingkat pembelajaran dengan tepat, misalnya 1E-5
1 , Mulai pelatihan
python svc_trainer.py -c configs/maxgan.yaml -n svc
2, pelatihan melanjutkan
python svc_trainer.py -c configs/maxgan.yaml -n svc -p chkpt/svc/***. pth
3, lihat log
Tensorboard -logdir log/

Gunakan perintah ini jika Anda menginginkan GUI yang melakukan semua perintah di bawah ini:
python3 svc_gui.py
atau langkah demi langkah, sebagai berikut:
1, model inferensi ekspor
python svc_export.py --config configs/maxgan.yaml --checkpoint_path chkpt/svc/***. pt
2, Gunakan Whisper untuk mengekstrak pengkodean konten, tanpa menggunakan penalaran satu klik, untuk mengurangi penggunaan memori GPU
Python Whisper/inference.py -W test.wav -p test.ppg.npy
3, ekstrak parameter F0 ke format teks CSV
python pitch/inference.py -w test.wav -p test.csv
4, tentukan parameter dan infer
python svc_inference.py --config configs/maxgan.yaml ---dokel maxgan_g.pth --pk ./data_svc/singers/your_singer.npy test.wav —ppg test.ppg.npy ---pit test.csv
Ketika --PPG ditentukan, ketika audio yang sama beralasan beberapa kali, ia dapat menghindari ekstraksi berulang dari kode konten audio; Jika tidak ditentukan, itu akan diekstraksi secara otomatis;
Ketika - -PIT ditentukan, parameter F0 yang disetel secara manual dapat dimuat; Jika tidak ditentukan, itu akan diekstraksi secara otomatis;
Hasilkan file di direktori saat ini: svc_out.wav
| args | -Config | --model | -spk | --melambai | --ppg | --lubang | --menggeser |
|---|---|---|---|---|---|---|---|
| nama | jalur konfigurasi | jalur model | pembicara | input gelombang | Wave PPG | Pitch Gelombang | shift pitch |
5, Diposting oleh VAD
python svc_inference_post.py ---ref test.wav --svc svc_out.wav - -out svc_post.wav
Perpanjangan berbasis adaptor model teks-ke-speech multi-speaker untuk speaker baru
Adaspeech: Teks adaptif untuk berbicara untuk suara khusus
https://github.com/nii-yamagishilab/project-nn-pytorch-scripts/tree/master/project/01-nsf
https://github.com/mindslab-ai/univnet [kertas]
https://github.com/openai/whisper/ [kertas]
https://github.com/nvidia/bigvgan [kertas]