ที่เก็บนี้มี dockerfile ที่ขยาย pytorch 21.02-py3 ngc คอนเทนเนอร์และห่อหุ้มการพึ่งพาบางอย่าง ในการสร้างคอนเทนเนอร์ของคุณเองให้เลือกคอนเทนเนอร์ Pytorch จากคอนเทนเนอร์ Nvidia Pytorch และสร้าง DockerFile เป็นรูปแบบต่อไปนี้:
FROM nvcr . io / nvidia / pytorch : 21.02 - py3
WORKDIR / path / to / working / directory / text2speech /
COPY requirements . txt .
RUN pip install - r requirements . txt ไปที่ /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} และป้อนโทเค็นของคุณที่ระบุไว้ในเทอร์มินัลของคุณเพื่อฝึกอบรมแบบจำลองการสังเคราะห์เสียงเสียงและลำดับเสียงที่แสดงเสียงเป็นสิ่งจำเป็น นั่นคือ WYH ในขั้นตอนแรกข้อความอินพุตจะถูกเข้ารหัสเป็นรายการสัญลักษณ์ ในการศึกษานี้เราจะใช้ตัวละครตุรกีและหน่วยเสียงเป็นสัญลักษณ์ เนื่องจากตุรกีเป็นภาษาสัทศาสตร์ นั่นคือลำดับตัวละครถูกสร้างขึ้นในภาษาตุรกี ในภาษาที่ไม่ใช่ภาษาศาสตร์เช่นภาษาอังกฤษคำสามารถแสดงออกด้วยหน่วยเสียง ในการสังเคราะห์คำพูดภาษาตุรกีด้วยข้อมูลภาษาอังกฤษคำในชุดข้อมูลภาษาอังกฤษก่อนจะต้องแปลออกเสียงเป็นภาษาตุรกี
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' ]เพื่อการฝึกอบรมที่เร่งความเร็วสามารถสร้างขึ้นได้ในระหว่างขั้นตอนการประมวลผลล่วงหน้าและอ่านโดยตรงจากดิสก์ระหว่างการฝึกอบรม ทำตามขั้นตอนเหล่านี้เพื่อใช้ชุดข้อมูลที่กำหนดเอง
text2speech/Fastpitch/dataset/ ตำแหน่ง ผู้เขียนไฟล์เหล่านั้นควรแสดงรายการคำพูดเดียวต่อบรรทัดเป็น: < 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) จาก text2speech/Fastpitch/data_preperation.ipynb filelists เหล่านั้นควรแสดงรายการคำพูดเดียวต่อบรรทัดเป็น: < mel or wav file path > | < pitch file path > | < text > | < speaker_id >ชุดข้อมูลที่สมบูรณ์มีโครงสร้างดังต่อไปนี้:
. / 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 การฝึกอบรมจะสร้างโมเดล fastpitch ที่สามารถสร้าง mel-spectrograms จากข้อความดิบ มันจะถูกทำให้เป็นอนุกรมเป็นไฟล์จุดตรวจสอบ .pt พร้อมกับชุดจุดตรวจสอบระดับกลาง
$ 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 - diskขั้นตอนสุดท้ายคือการแปลง spectrogram เป็นรูปคลื่น กระบวนการสร้างคำพูดจาก Spectrogram เรียกอีกอย่างว่า Vocoder
เครื่องกำเนิดไฟฟ้า mel-spectrogram บางตัวมีแนวโน้มที่จะสร้างแบบจำลองอคติ เนื่องจากสเปกโตรแกรมแตกต่างจากข้อมูลจริงที่ได้รับการฝึกอบรม HIFI-GAN คุณภาพของเสียงที่สร้างขึ้นอาจประสบ เพื่อที่จะเอาชนะปัญหานี้โมเดล HIFI-GAN สามารถปรับแต่งได้อย่างละเอียดเกี่ยวกับเอาต์พุตของเครื่องกำเนิดไฟฟ้า mel-spectrogram โดยเฉพาะเพื่อปรับให้เข้ากับอคตินี้ ในส่วนนี้เราจะทำการปรับแต่งอย่างละเอียดเพื่อเอาต์พุต Fastpitch
text2speech/Hifigan/data/pretrained_fastpicth_model/ ไดเรกทอรีtts_pitch_data.txt ใน text2speech/Hifigan/data/ directory $ 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 ควรเตรียมไว้ในไดเรกทอรี text2speech/Hifigan/data/mels-fastpitch-tr22khz สคริปต์การปรับแต่งจะโหลดโมเดล HIFI-GAN ที่มีอยู่และเรียกใช้การฝึกอบรมหลายครั้งโดยใช้ spectrograms ที่สร้างขึ้นในขั้นตอนสุดท้าย
ขั้นตอนนี้จะสร้างไฟล์จุดตรวจสอบรุ่น .pt -GAN อื่น ๆ
results โฟลเดอร์ใหม่ในไดเรกทอรี 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 เรียกใช้คำสั่งต่อไปนี้เพื่อสังเคราะห์เสียงจากข้อความดิบด้วยเครื่องกำเนิดไฟฟ้า 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 / คำพูดถูกสร้างขึ้นจากไฟล์ที่ส่งผ่านด้วยอาร์กิวเมนต์ -i เสียงเอาต์พุตจะถูกเก็บไว้ในเส้นทางที่ระบุโดยอาร์กิวเมนต์ -o