การใช้งาน TSELM อย่างเป็นทางการ: การแยกผู้พูดเป้าหมายโดยใช้โทเค็นแยกและโมเดลภาษา
หากต้องการอ้างถึงคลาสโมเดล ให้ตรวจสอบ exp/tselm/model.py โดยตรง โปรดทราบว่าเสียงผสมถูกตัดให้มีความยาว 48080 (3.05sx 16khz) และคำพูดอ้างอิงถูกตัดเป็น 64080 (4.05sx 16khz) สำหรับการฝึก ตามลำดับ
เราขอเสนอ TSELM ซึ่งเป็นเครือข่ายการแยกผู้พูดเป้าหมายแบบใหม่ที่ใช้ประโยชน์จากโทเค็นและโมเดลภาษาที่แยกจากกัน TSELM ใช้เลเยอร์แยกหลายเลเยอร์จาก WavLM เป็นโทเค็นอินพุตและรวมกลไกการให้ความสนใจข้ามสายเพื่อรวมข้อมูลผู้พูดเป้าหมาย มีการใช้แบบจำลองภาษาเพื่อบันทึกการขึ้นต่อกันของลำดับ ในขณะที่ HiFi-GAN ที่ปรับขนาดได้จะใช้เพื่อสร้างเสียงจากโทเค็นขึ้นมาใหม่ ด้วยการใช้การสูญเสียข้ามเอนโทรปี TSELM จะจำลองการกระจายความน่าจะเป็นของโทเค็นเอาท์พุต ดังนั้นการแปลงปัญหาการถดถอยที่ซับซ้อนของการสร้างเสียงให้เป็นงานการจัดหมวดหมู่ ผลการทดลองแสดงให้เห็นว่า TSELM บรรลุผลลัพธ์ที่ยอดเยี่ยมในด้านคุณภาพเสียงพูด และผลลัพธ์ที่เทียบเคียงได้ในด้านความชัดเจนของคำพูด
requirements.txt
ก่อนที่จะทำการทดลอง เราจำเป็นต้องดาวน์โหลดโมเดลที่ผ่านการฝึกอบรมแบบแช่แข็งต่อไปนี้
ชื่อ | ลิงค์ | ผลลัพธ์ |
---|---|---|
WavLM ขนาดใหญ่ | https://huggingface.co/microsoft/wavlm-large/tree/main | wavlm-ขนาดใหญ่ |
เคมีนส์ | ดาวน์โหลด Kmeans Checkpoint.mq4 | kmeans_ckpt |
HiFiGAN ที่ปรับขนาดได้ | ดาวน์โหลด HiFiGAN Checkpoint | hifigan-wavlm-l1-3-7-18-23-k1000-LibriTTS |
โปรดทราบว่าสำหรับเอาต์พุตของ WavLM Large ขอแนะนำให้โคลนพื้นที่เก็บข้อมูลทั้งหมดหรือดาวน์โหลดไดเรกทอรีทั้งหมด สำหรับ Kmeans และ Scalable HiFiGAN เราจำเป็นต้องแตกไฟล์เหล่านี้หลังจากดาวน์โหลด
การกำหนดค่าการฝึกอบรมระบุโดยใช้แพ็คเกจ hyperpyyaml
ซึ่งโดยพื้นฐานแล้วเป็นการสะท้อนกลับ
คุณสามารถดูการกำหนดค่าสำหรับการฝึก TSELM-L
ได้ใน config/tselm_l.yaml ก่อนการฝึก คุณต้องระบุการกำหนดค่าสำหรับโมเดลการฝึกล่วงหน้าแบบแช่แข็งและรายละเอียดการฝึกอื่น ๆ ดูรายละเอียดได้ใน config/tselm_l.yaml และ config/README.md
หลังจากกำหนดค่าแล้วคุณสามารถเรียกใช้ได้
# # Train the model using the config
python train.py --config_path ./config/tselm_l.yaml --log ./log --ckpt_path ./ckpt/tselm_l
--config_path
ระบุเส้นทางไปยังไฟล์กำหนดค่า--log
ระบุไดเร็กทอรีเอาต์พุตบันทึก บันทึกทั้งหมดจะถูกวางไว้ที่นี่--ckpt_path
ระบุไดเร็กทอรีจุดตรวจสอบ การฝึกสามารถดำเนินต่อได้โดยใช้เส้นทางจุดตรวจเดิม หลังการฝึก โมเดลที่ดีที่สุดจะอยู่ที่
หากต้องการอนุมานโมเดลของเราบนชุดทดสอบ libri2mix คุณสามารถเรียกใช้ได้
# # Generate output audio on libri2mix testset
python inference.py -scp < path_to_libri2mix_test_scp_folder >
-config ./config/tselm_l.yaml
-ckpt < path_to_ckpt >
--output < path_to_output_folder >
-gpus cuda:0 cuda:1 cuda:2 cuda:3
-proc 8
-scp
ระบุพาธไปยังโฟลเดอร์ชุดทดสอบ libri2mix ที่มี aux_s1.scp
, s1.scp
และ mix_clean.scp
-config
ระบุการกำหนดค่า การกำหนดค่านี้จำเป็นต้องมีฟิลด์ model
-ckpt
ระบุจุดตรวจสอบโมเดล--output
ระบุไดเรกทอรีผลลัพธ์ เสียงที่ส่งออกจะถูกส่งออกไปยังโฟลเดอร์นี้ ชื่อของพวกเขาจะเหมือนกับชื่อในไฟล์ .scp-gpus
ระบุ GPU ที่พร้อมใช้งานเพื่อเรียกใช้การอนุมาน-proc
ระบุจำนวนกระบวนการทั้งหมดเพื่อเรียกใช้การอนุมานแบบขนาน โดยจะใช้ GPU ที่ให้มาและแบ่งกระบวนการเท่าๆ กันในแต่ละอุปกรณ์ ข้อมูลจะถูกแบ่งเท่าๆ กันในแต่ละกระบวนการ สามารถดาวน์โหลดจุดตรวจ TSELM-L ของเราได้ที่นี่
คุณสามารถอนุมานชุดทดสอบ libri2mix ได้โดยการแทนที่ -ckpt
ด้วยพาธไปยังจุดตรวจสอบ
โปรดทราบว่าคุณยังคงต้องดาวน์โหลดโมเดลที่ได้รับการอบรมและเพิ่มโฟลเดอร์จุดตรวจสอบที่เกี่ยวข้องลงใน config/tselm_l.yaml