Repositori ini berisi dockerfile yang memperluas wadah Pytorch 21.02-py3 NGC dan merangkum beberapa dependensi. Untuk membuat wadah Anda sendiri, pilih wadah Pytorch dari versi Nvidia Pytorch Container dan buat DockerFile sebagai format berikut:
FROM nvcr . io / nvidia / pytorch : 21.02 - py3
WORKDIR / path / to / working / directory / text2speech /
COPY requirements . txt .
RUN pip install - r requirements . txt Buka /path/to/working/directory/text2speech/docker
$ docker build - - no - cache - t torcht2s .
$ docker run - it - - rm - - gpus all - p 2222 : 8888 - v / path / to / working / directory / text2speech : / path / to / working / directory / text2speech torcht2s$ python - m ipykernel install - - user - - name = torcht2s
$ jupyter notebook - - ip = 0.0 . 0.0 - - port = 8888 - - no - browser - - allow - roothttp://127.0.0.1:2222/?token=${TOKEN} dan masukkan token Anda yang ditentukan di terminal Anda.Untuk melatih model sintesis ucapan, suara dan urutan fonem yang mengekspresikan suara diperlukan. Itu wyh pada langkah pertama, teks input dikodekan ke dalam daftar simbol. Dalam penelitian ini, kami akan menggunakan karakter dan fonem Turki sebagai simbol. Karena bahasa Turki adalah bahasa fonetik, kata -kata diungkapkan saat dibaca. Artinya, urutan karakter dibangun kata -kata dalam bahasa Turki. Dalam bahasa non-fonetik seperti bahasa Inggris, kata-kata dapat diekspresikan dengan fonem. Untuk mensintesis ucapan Turki dengan data bahasa Inggris, kata -kata dalam dataset bahasa Inggris terlebih dahulu harus diterjemahkan secara fonetis ke dalam bahasa Turki.
valid_symbols = [ '1' , '1:' , '2' , '2:' , '5' , 'a' , 'a:' , 'b' , 'c' , 'd' , 'dZ' , 'e' , 'e:' , 'f' , 'g' , 'gj' , 'h' , 'i' , 'i:' , 'j' ,
'k' , 'l' , 'm' , 'n' , 'N' , 'o' , 'o:' , 'p' , 'r' , 's' , 'S' , 't' , 'tS' , 'u' , 'u' , 'v' , 'y' , 'y:' , 'z' , 'Z' ]Untuk pelatihan mempercepat, itu dapat dihasilkan selama langkah pra-pemrosesan dan membaca langsung dari disk selama pelatihan. Ikuti langkah -langkah ini untuk menggunakan dataset khusus.
text2speech/Fastpitch/dataset/ lokasi. Daftar file tersebut harus mencantumkan satu ucapan per baris sebagai: < audio file path > | < transcript >text2speech/Fastpitch/data_preperation.ipynb $ python prepare_dataset . py
- - wav - text - filelists dataset / tts_data . txt
- - n - workers 16
- - batch - size 1
- - dataset - path dataset
- - extract - pitch
- - f0 - method pyin
- - extract - mels create_picth_text_file(manifest_path) dari text2speech/Fastpitch/data_preperation.ipynb daftar file tersebut harus mencantumkan satu ucapan per baris sebagai: < mel or wav file path > | < pitch file path > | < text > | < speaker_id >Dataset lengkap memiliki struktur berikut:
. / dataset
├── mels
├── pitch
├── wavs
├── tts_data . txt # train + val
├── tts_data_train . txt
├── tts_data_val . txt
├── tts_pitch_data . txt # train + val
├── tts_pitch_data_train . txt
├── tts_pitch_data_val . txt Pelatihan ini akan menghasilkan model FastPitch yang mampu menghasilkan Mel-spectrograms dari teks mentah. Ini akan diserialisasi sebagai file pos pemeriksaan .pt tunggal, bersama dengan serangkaian pos pemeriksaan menengah.
$ python train . py - - cuda - - amp - - p - arpabet 1.0 - - dataset - path dataset
- - output saved_fastpicth_models /
- - training - files dataset / tts_pitch_data_train . txt
- - validation - files dataset / tts_pitch_data_val . txt
- - epochs 1000 - - learning - rate 0.001 - - batch - size 32
- - load - pitch - from - diskLangkah terakhir adalah mengubah spektrogram menjadi bentuk gelombang. Proses untuk menghasilkan pidato dari Spectrogram juga disebut Vocoder.
Beberapa generator Mel-Spectrogram rentan terhadap bias memodelkan. Karena spektrogram berbeda dari data sebenarnya di mana Hifi-Gan dilatih, kualitas audio yang dihasilkan mungkin menderita. Untuk mengatasi masalah ini, model HIFI-GAN dapat disesuaikan dengan output generator Mel-spectrogram tertentu untuk beradaptasi dengan bias ini. Di bagian ini kami akan melakukan fine-tuning untuk output FastPitch.
text2speech/Hifigan/data/pretrained_fastpicth_model/ direktori.tts_pitch_data.txt di text2speech/Hifigan/data/ Direktori. $ python extract_mels . py - - cuda
- o data / mels - fastpitch - tr22khz
- - dataset - path / text2speech / Fastpitch / dataset
- - dataset - files data / tts_pitch_data . txt # train + val
- - load - pitch - from - disk
- - checkpoint - path data / pretrained_fastpicth_model / FastPitch_checkpoint . pt - bs 16 Mel-spectrograms sekarang harus disiapkan di direktori text2speech/Hifigan/data/mels-fastpitch-tr22khz . Script fine-tuning akan memuat model HiFi-Gan yang ada dan menjalankan beberapa zaman pelatihan menggunakan spektrogram yang dihasilkan pada langkah terakhir.
Langkah ini akan menghasilkan file pos pemeriksaan model .pt -Gan lainnya yang disesuaikan dengan model FastPitch tertentu.
results folder baru di direktori text2speech/Hifigan . $ nohup python train . py - - cuda - - output / results / hifigan_tr22khz
- - epochs 1000 - - dataset_path / Fastpitch / dataset
- - input_mels_dir / data / mels - fastpitch - tr22khz
- - training_files / Fastpitch / dataset / tts_data . txt
- - validation_files / Fastpitch / dataset / tts_data . txt
- - fine_tuning - - fine_tune_lr_factor 3 - - batch_size 16
- - learning_rate 0.0003 - - lr_decay 0.9998 - - validation_interval 10 > log . txt$ tail - f log . txt Jalankan perintah berikut untuk mensintesis audio dari teks mentah dengan generator Mel-Spectrogram
python inference . py - - cuda
- - hifigan / Hifigan / results / hifigan_tr22khz / hifigan_gen_checkpoint . pt
- - fastpitch / Fastpitch / saved_fastpicth_models / FastPitch_checkpoint . pt
- i test_text . txt
- o wavs / Pidato dihasilkan dari file yang disahkan dengan argumen -i . Audio output akan disimpan di jalur yang ditentukan oleh argumen -o .