การใช้งาน Pytorch ของ CS-Tacotron ซึ่งเป็นแบบจำลองการสังเคราะห์คำพูดสลับรหัสแบบ end-to-end TTS ตาม Tacotron สำหรับ Tacotron เวอร์ชันปกติโปรดดู repo นี้
ด้วยความสำเร็จที่กว้างของโมเดลการเรียนรู้ของเครื่องจักรเป็นข้อความ (TTS) เมื่อเร็ว ๆ นี้ผลลัพธ์ที่มีแนวโน้มเกี่ยวกับการสังเคราะห์คำพูดที่สมจริงได้พิสูจน์ให้เห็นถึงความสามารถของเครื่องจักรในการสังเคราะห์เสียงเหมือนมนุษย์ อย่างไรก็ตามมีความคืบหน้าเล็กน้อยในโดเมนของการสังเคราะห์การสลับข้อความภาษาจีน-ภาษาอังกฤษแบบภาษาจีน-ภาษาอังกฤษซึ่งเครื่องจักรต้องเรียนรู้ที่จะจัดการทั้งอินพุตและเอาท์พุทในรูปแบบหลายภาษา การสลับรหัสเกิดขึ้นเมื่อผู้พูดสลับกันระหว่างสองภาษาขึ้นไปทุกวันนี้ผู้คนสื่อสารกันในภาษาสลับรหัสในชีวิตประจำวันดังนั้นเทคโนโลยีภาษาที่พูดเช่น TTS ต้องได้รับการพัฒนาเพื่อจัดการอินพุตและเอาต์พุตหลายภาษา
ในงานนี้เรานำเสนอ Tacotron สลับรหัสซึ่งสร้างขึ้นตาม Tacotron แบบจำลองการกำเนิดแบบ end-the end-to-to-the-to-the-to-the-to-the-to-the-to-the-the-to-the-the-to-the-the-to-the-to-the-to-the-to-the-to-the-to-the-to-to-to-to-the-to-to-to-tacotron CS-TACOTRON มีความสามารถในการสังเคราะห์คำพูดเปลี่ยนรหัสปรับอากาศบนข้อความ CS ดิบ ให้กับคู่ข้อความและเสียง CS โมเดลของเราสามารถผ่านการฝึกอบรมแบบ end-to-end ด้วยการประมวลผลข้อมูลที่เหมาะสม นอกจากนี้เราฝึกอบรมโมเดลของเราในชุดข้อมูล LecturedSP ซึ่งเป็นชุดข้อมูลการบรรยายแบบเปลี่ยนรหัสภาษาจีน-อังกฤษซึ่งมีต้นกำเนิดมาจากหลักสูตรการประมวลผลสัญญาณดิจิตอล (DSP) ที่นำเสนอในมหาวิทยาลัยแห่งชาติไต้หวัน (NTU) เรานำเสนอเทคนิคการใช้งานที่สำคัญหลายประการเพื่อให้โมเดลทาโคทรอนทำงานได้ดีในงานสร้างคำพูดหลายภาษาที่ท้าทายนี้ CS-Tacotron มีความสามารถในการสร้างคำพูด CS จากข้อความ CS และพูดอย่างชัดเจนกับรูปแบบของลำโพงของผู้บรรยาย
ดู Report.pdf สำหรับรายละเอียดเพิ่มเติมของงานนี้
ยินดีต้อนรับคำขอดึง!
ตัวอย่างเสียงของ CS-tacotron วลีด้านล่างทั้งหมดนั้นมองไม่เห็นในระหว่างการฝึกอบรม
ติดตั้ง Python 3
ติดตั้ง Pytorch เวอร์ชันล่าสุดตามแพลตฟอร์มของคุณ เพื่อประสิทธิภาพที่ดีขึ้นให้ติดตั้งด้วย GPU Support (CUDA) หากทำงานได้ รหัสนี้ใช้งานได้กับ Pytorch 1.0 และใหม่กว่า
(ไม่บังคับ) ติดตั้ง TensorFlow เวอร์ชันล่าสุดตามแพลตฟอร์มของคุณ นี่อาจเป็นทางเลือก แต่สำหรับตอนนี้จำเป็นสำหรับการประมวลผลคำพูด
การติดตั้งข้อกำหนด:
pip3 install -r requirements.txt
คำเตือน: คุณต้องติดตั้งไฟฉายและ Tensorflow / Tensorflow-GPU ขึ้นอยู่กับแพลตฟอร์มของคุณ ที่นี่เราแสดงรายการ Pytorch และ Tensorflow ที่เราใช้เมื่อเราสร้างโครงการนี้
python3 test.py --interactive --plot --long_input --model 470000
python3 test.py --plot --model 480000 --test_file_path ../data/text/test_sample.txt
* '--long_input' is optional to add
หมายเหตุ: เราฝึกอบรมแบบจำลองของเราในชุดข้อมูลของเราเอง: LecturedSp ขณะนี้ชุดข้อมูลนี้ไม่สามารถใช้งานได้สำหรับการเปิดตัวสาธารณะและยังคงเป็นคอลเลกชันส่วนตัวในห้องปฏิบัติการ ดู 'report.pdf' สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชุดข้อมูลนี้
ดาวน์โหลดชุดข้อมูลการสลับรหัสที่คุณเลือก
แกะชุดข้อมูลลงใน ~/data/text และ ~/data/audio
หลังจากแกะกล่องข้อมูลของคุณควรมีลักษณะเช่นนี้เพื่อให้เส้นทางเริ่มต้นทำงาน:
./CS-Tacotron
|- data
|- text
|- train_sample.txt
|- test_sample.txt
|- audio
|- sample
|- audio_sample_*.wav
|- ...
หมายเหตุ: สำหรับส่วนต่อไปนี้ให้ตั้งค่าพา ธ ตามชื่อไฟล์ของชุดข้อมูลของคุณนี่เป็นเพียงการสาธิตข้อมูลตัวอย่างบางอย่าง รูปแบบของชุดข้อมูลของคุณควรตรงกับข้อมูลตัวอย่างที่ให้ไว้สำหรับรหัสนี้ให้ทำงาน
ประมวลผลข้อมูลข้อความล่วงหน้าโดยใช้ src/preprocess.py:
python3 preprocess.py --mode text --text_input_raw_path ../data/text/train_sample.txt --text_pinyin_path '../data/text/train_sample_pinyin.txt'
ประมวลผลข้อมูลเสียงล่วงหน้าโดยใช้ src/preprocess.py:
python3 preprocess.py --mode audio --audio_input_dir ../data/audio/sample/ --audio_output_dir ../data/audio/sample_processed/ --visualization_dir ../data/audio/sample_visualization/
การสร้างภาพความแตกต่างของการประมวลผลเสียงล่วงหน้า:
สร้างไฟล์เมตาแบบจำลองพร้อมข้อความและเสียงโดยใช้ src/preprocess.py:
python3 preprocess.py --mode meta --text_pinyin_path ../data/text/train_sample_pinyin.txt --audio_output_dir ../data/audio/sample_processed/
ฝึกอบรมแบบจำลองโดยใช้ src/train.py
python3 train.py
hyperparameters ที่ปรับได้จะพบได้ใน SRC/config.py คุณสามารถปรับพารามิเตอร์และการตั้งค่าเหล่านี้ได้โดยการแก้ไขไฟล์ แนะนำให้ใช้ไฮเปอร์พารามิเตอร์เริ่มต้นสำหรับการบรรยายและข้อมูลการสลับรหัสภาษาจีน-อังกฤษอื่น ๆ
ตรวจสอบด้วย tensorboardx (ไม่บังคับ)
tensorboard --logdir 'path to log dir'
ผู้ฝึกสอนทิ้งเสียงและการจัดตำแหน่งทุกขั้นตอน 2,000 ขั้นตอนโดยค่าเริ่มต้น คุณสามารถค้นหาสิ่งเหล่านี้ได้ใน CS-tacotron/ckpt
เราต้องการให้เครดิตกับการทำงานของ Ryuichi Yamamoto การดำเนินงานที่ยอดเยี่ยมของ Tacotron ซึ่งเราใช้งานของเราเป็นหลัก
เราแสดงพล็อตการจัดตำแหน่งของขั้นตอนการทดสอบของแบบจำลองของเราซึ่งครั้งแรกแสดงการจัดตำแหน่งของอินพุตภาษาจีนแบบ monolingual ครั้งที่สองคืออินพุตการสลับรหัสภาษาจีน-อังกฤษและที่สามคืออินพุตภาษาอังกฤษแบบ monolingual ตามลำดับ