Summertts ใช้เพื่อรำลึกถึงการมาถึงและผ่านช่วงฤดูร้อนของปี 2023
อธิบาย
- Summertts เป็นโปรแกรมการสังเคราะห์คำพูดที่รวบรวมได้อย่างอิสระ (TTS) มันสามารถทำงานได้ในพื้นที่โดยไม่จำเป็นต้องใช้เครือข่ายและไม่มีการพึ่งพาเพิ่มเติม การรวบรวมหนึ่งคลิกสามารถใช้สำหรับการสังเคราะห์คำพูดภาษาจีนและภาษาอังกฤษ
- ไลบรารีการคำนวณพื้นฐานของ Summertts ใช้ eigen ซึ่งเป็นชุดของฟังก์ชั่นที่กำหนดแม่แบบ ในกรณีส่วนใหญ่จำเป็นต้องรวมไฟล์ส่วนหัวเท่านั้นดังนั้นโครงการนี้จึงไม่มีการพึ่งพาอื่นและสามารถรวบรวมและทำงานได้อย่างอิสระในสภาพแวดล้อม C ++
- โครงการนี้ใช้ไลบรารีเมทริกซ์ที่จัดทำโดย Eigen เพื่อใช้ผู้ดำเนินการเครือข่ายประสาทและไม่จำเป็นต้องพึ่งพาสภาพแวดล้อมการทำงานของ NN อื่น ๆ เช่น Pytorch, Tensorflow, NCNN ฯลฯ
- โครงการนี้รวบรวมและดำเนินการบน Ubuntu แพลตฟอร์มที่มีลักษณะคล้าย Linux อื่น ๆ เช่น Android, Raspberry Pi ฯลฯ ไม่ควรมีปัญหาสำคัญใด ๆ พวกเขายังไม่ได้รับการทดสอบบน Windows และอาจต้องมีการเปลี่ยนแปลงเล็กน้อย
- แบบจำลองของโครงการนี้ขึ้นอยู่กับอัลกอริทึมการสังเคราะห์เสียงพูดและอิงจากวิศวกรรม C ++ จะดำเนินการกับมัน
- โครงการนี้ใช้กับใบอนุญาต MIT การพัฒนาผู้ใช้หรือองค์กรตามโครงการนี้โปรดติดตามใบอนุญาต MIT: https://mit-license.org
อัพเดทบันทึก
- 2024-12-14: เพิ่มข้อมูลใบอนุญาตลงในใบอนุญาต MIT: https://mit-license.org
- 2023-06-16: อัปเดตเพื่อเพิ่มโมเดลการสังเคราะห์เสียงภาษาอังกฤษที่เร็วขึ้น: single_speaker_english_fast.bin หรือบนดิสก์เครือข่ายต่อไปนี้ความเร็วเร็วขึ้นและคุณภาพเสียงสังเคราะห์จะไม่ลดลงอย่างมีนัยสำคัญ:
ลิงค์: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h รหัสการสกัด: 2d5h - 2023-06-15: สนับสนุนการสังเคราะห์การออกเสียงภาษาอังกฤษบริสุทธิ์และคุณต้องซิงโครไนซ์รหัสล่าสุด ใช้ไฟล์โมเดลในดิสก์เครือข่ายต่อไปนี้: single_speaker_english.bin และสังเคราะห์การออกเสียงภาษาอังกฤษด้วยวิธีต่อไปนี้:
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
เส้นทางของดิสก์เครือข่ายมีดังนี้ การสังเคราะห์การออกเสียงภาษาจีนก่อนหน้านี้และการใช้งานจะไม่ได้รับผลกระทบ ควรสังเกตว่าการอัปเดตนี้สนับสนุนการสังเคราะห์การออกเสียงภาษาอังกฤษบริสุทธิ์เท่านั้นและภาษาอังกฤษผสมภาษาจีนไม่สนับสนุนในขณะนี้
ลิงค์: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h รหัสการสกัด: 2d5h - 2023-06-09: มีการเพิ่มโมเดลลำโพงเดี่ยวขนาดกลาง: single_speaker_mid.bin ซึ่งช้ากว่ารุ่นก่อนหน้าเล็กน้อย แต่คุณภาพเสียงสังเคราะห์ดูเหมือนจะดีกว่า (ฉันไม่ไวต่อหูของฉันและฉันรู้สึกดีขึ้น รหัสไม่จำเป็นต้องได้รับการอัปเดตฉันแค่ต้องดาวน์โหลด single_speaker_mid.bin ในดิสก์เครือข่ายก่อนหน้าและใช้งาน
- 2023-06-08: แก้ไขการทดสอบ/main.cpp เพื่อสนับสนุนการสังเคราะห์ newLines และข้อความทั้งหมด
- 2023-06-03: การแก้ไขมีข้อผิดพลาดในเวอร์ชันของเมื่อวานนี้ ขอบคุณ Netizen Telen ที่กระตือรือร้นสำหรับการทดสอบและเบาะแส จำเป็นต้องมีการอัปเดตรหัสเท่านั้นและไม่จำเป็นต้องอัปเดตแบบจำลอง
- 2023-06-02: ความแม่นยำของการสังเคราะห์การออกเสียงโพลีโฟนิกได้รับการปรับปรุงอย่างมาก จำเป็นต้องใช้โมเดลใหม่ใน Baidu Netdisk เพื่อใช้การออกเสียงโพลีโฟนิกที่ดีขึ้นและการทำให้เป็นมาตรฐานข้อความ (การทำให้เป็นมาตรฐานข้อความ) รหัสที่อัปเดตในวันนี้ไม่สามารถใช้โมเดลก่อนหน้านี้มิฉะนั้นอาจนำไปสู่ความผิดพลาด
- 2023-05-30: WetextProcessing แบบบูรณาการเป็นโมดูลการทำให้เป็นมาตรฐานข้อความส่วนหน้าปรับปรุงการสังเคราะห์การออกเสียงที่ถูกต้องอย่างมากของตัวเลขสกุลเงินอุณหภูมิวันที่ ฯลฯ คุณต้องได้รับรุ่นใหม่ใน Baidu NetDisk ด้านล่างด้านล่าง
- 2023-5-23: การใช้อัลกอริทึมใหม่ได้ปรับปรุงความเร็วการสังเคราะห์เสียงของลำโพงเดี่ยวอย่างมาก
- 2023-4-21: การสร้างเบื้องต้น
คำแนะนำสำหรับการใช้งาน
การโคลนนิ่งรหัสของโครงการนี้ในพื้นที่โดยเฉพาะอย่างยิ่งสภาพแวดล้อม Ubuntu Linux
ดาวน์โหลดโมเดลจากที่อยู่ดิสก์เครือข่าย Baidu ต่อไปนี้และใส่ไว้ในไดเรกทอรีโมเดลของโครงการนี้: ลิงค์: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2VQ
หลังจากวางไฟล์โมเดลโครงสร้างไดเรกทอรีโมเดลมีดังนี้:
รุ่น/
├── multi_speakers.bin
├ดุ single_speaker_mid.bin
├ดุ single_speaker_english.bin
├ดุ single_speaker_english_fast.bin
└ดุ single_speaker_fast.bin
ป้อนไดเรกทอรีบิลด์และดำเนินการคำสั่งต่อไปนี้:
cmake ..
ทำ
หลังจากการรวบรวมเสร็จสมบูรณ์แล้วผู้ดำเนินการ TTS_TEST จะถูกสร้างขึ้นในไดเรกทอรี Build
เรียกใช้คำสั่งต่อไปนี้เพื่อทดสอบการสังเคราะห์คำพูดภาษาจีน (TTS):
./tts_test ../test.txt ../models/single_speaker_fast.bin out.wav
เรียกใช้คำสั่งต่อไปนี้เพื่อทดสอบการสังเคราะห์คำพูดภาษาอังกฤษ (TTS):
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
ในบรรทัดคำสั่งนี้:
พารามิเตอร์แรกคือพา ธ ไปยังไฟล์ข้อความซึ่งมีข้อความที่ต้องสังเคราะห์สำหรับการพูด
พารามิเตอร์ที่สองคือเส้นทางไปยังโมเดลดังกล่าว เดี่ยวและหลายจุดเริ่มต้นของชื่อไฟล์ระบุว่าโมเดลมีลำโพงตัวเดียวหรือลำโพงหลายตัว โมเดลลำโพงเดี่ยวที่แนะนำ: single_speaker_fast.bin ความเร็วการสังเคราะห์เร็วขึ้นและคุณภาพเสียงของการสังเคราะห์ก็โอเคเช่นกัน พารามิเตอร์ที่สามคือไฟล์เสียงสังเคราะห์ หลังจากโปรแกรมทำงานแล้วสามารถเปิดได้ด้วยผู้เล่น
โปรแกรมการทดสอบข้างต้นถูกนำไปใช้ใน test/main.cpp และอินเตอร์เฟสสังเคราะห์เฉพาะถูกกำหนดไว้ใน Integal/synthesizertrn.h ดังต่อไปนี้:
int16_t * อนุมาน (สตริง const & line, int32_t sid, float lengthscale, int32_t & datalen)
อินเทอร์เฟซ:
พารามิเตอร์แรกคือสตริงของคำพูดที่จะสังเคราะห์
พารามิเตอร์ที่สองระบุว่า ID ของลำโพงถูกใช้เพื่อสังเคราะห์คำพูด พารามิเตอร์นี้ใช้ได้สำหรับโมเดลหลายลำโพงและแก้ไขเป็น 0 สำหรับโมเดลลำโพงเดี่ยว จำนวนลำโพงสามารถส่งคืนได้โดยอินเตอร์เฟส int32_t getSpeakernum () และ ID ที่ถูกต้องคือ 0 และจำนวนลำโพงที่ส่งกลับไปยังอินเตอร์เฟสจะลดลง 1
พารามิเตอร์ที่สาม LengthScale แสดงถึงความเร็วในการพูดของคำพูดสังเคราะห์และค่าที่ใหญ่กว่านั้นบ่งบอกว่าความเร็วในการพูดช้าลง
ข้อความที่จะสังเคราะห์อาจมีตัวเลขอาหรับและการเว้นวรรค แต่เนื่องจากโมดูล Text Text Regulatization (TN) ของโครงการนี้ยังคงหยาบมากจึงจะถูกละเว้นสำหรับอักขระภาษาอังกฤษ นอกจากนี้เนื่องจากโมดูล Text Regulatization (TN) ยังคงหยาบมากการออกเสียงของอักขระ polyphonic ในบริบทที่แตกต่างกันบางครั้งไม่ถูกต้อง
การพัฒนาติดตามผล
- สคริปต์การฝึกอบรมและการแปลงจะเปิดในภายหลัง
- ในอนาคตเราจะพยายามฝึกอบรมและให้แบบจำลองที่มีคุณภาพเสียงที่ดีขึ้น
ติดต่อผู้เขียน
- หากคุณมีคำถามเพิ่มเติมหรือต้องการคุณสามารถส่งอีเมลไปที่ [email protected] หรือเพิ่ม WeChat: HWANG_2011 ฉันจะพยายามอย่างเต็มที่เพื่อตอบกลับ
ใบอนุญาต
- โครงการนี้ใช้กับใบอนุญาต MIT การพัฒนาผู้ใช้หรือองค์กรตามโครงการนี้โปรดติดตามใบอนุญาต MIT: https://mit-license.org
ปลื้มปีติ
โครงการนี้ใช้รูปแบบต่อไปนี้ในแง่ของซอร์สโค้ดและอัลกอริทึม ขอบคุณที่นี่ หากปัญหาทางกฎหมายใด ๆ เกิดขึ้นโปรดติดต่อฉันทันเวลาเพื่อประสานงานและแก้ไขปัญหา
- ไอเท็น
- VITS (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/vits_chinese)
- mb-istft-vits (https://github.com/masayakawamura/mb-istft-vits)
- WetextProcessing (https://github.com/wenet-e2e/wetextprocessing)
- glog (https://github.com/google/glog)
- gflags (https://github.com/gflags/gflags)
- OpenFST (https://github.com/kkm000/openfst)
- ตัวละครจีนถึงพินอิน (https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- English-to-IPA (https://github.com/mphilli/English-to-Ipa)
- โมเดลลำโพงเดี่ยวของจีนของโครงการนี้ขึ้นอยู่กับการฝึกอบรมชุดข้อมูลโอเพนซอร์ส Biaobei โมเดลหลายลำโพงจะขึ้นอยู่กับการฝึกอบรมชุดข้อมูลโอเพนซอร์ส Aishell3 และโมเดลลำโพงภาษาอังกฤษนั้นใช้ชุดข้อมูลคำพูด LJ