IndexTTS2-Thai Finetune v1
TTS ภาษาไทยที่โคลนเสียง เพิ่มอารมณ์ได้ เหมาะกับการทำ dub (พากย์ทับ)
⚖️ เปรียบเทียบกับโมเดลอื่นๆ
เทียบกับ Local Model ที่คุณภาพพอๆ กัน และสามารถพูดไทยได้ในตอนนี้คือ F5-TTS และ Vibevoice
🆚 เทียบกับ F5-TTS THAI
- ดีกว่า: ในแง่การแสดงอารมณ์ตาม Ref Audio มีโหมดกำหนดอารมณ์ได้มากกว่าผ่าน Vector และอื่นๆ ไม่จำเป็นต้องใส่ Ref Prompt เหมือน F5-TTS
- ความเร็ว: ช้ากว่า F5-TTS ประมาณหนึ่ง เนื่องจากเป็น Autoregressive model (แต่ก็เร็วกว่า Vibevoice 7b มาก)
🆚 เทียบกับ Vibevoice
- จุดเด่น: รุ่นนี้แยกสำเนียงกับภาษาออกจาก Ref Audio ได้ดีกว่า (ในขณะที่ Vibevoice ถ้า Ref Audio เป็นภาษาอังกฤษ เสียงที่ Generate ได้ก็จะกลายเป็นภาษาไทยสำเนียงอังกฤษแทน)
- จุดด้อย: ความถูกต้องและความเป็นธรรมชาติในการ Gen ปกติ Vibevoice ยังเหนือกว่า
🛠️ ข้อมูลทางเทคนิค (Technical Details)
- Dataset: Finetune จาก Base Model ด้วย Porjai Dataset ที่คัดออกจาก 700 ชั่วโมง เหลือ 500 ชั่วโมง
- Duration: Segments อยู่ที่ 1-15 วินาที (เพราะรู้สึกที่มากกว่านั้นคือติด Noise มาทั้งนั้น)
- Data Size: หลังทำ GPT Pairing Total Line ในไฟล์
jsonlอยู่ประมาณ 500,000+ - Training Method: ทำ Finetune โดยอ้างอิงจาก Repo คุณ Jarod Mica มีดัดแปลงวิธีการแยกเสียงผู้พูดโดยใช้ Pyannote ผสม Condition Vector ที่แยกมาได้จากตอน Preprocess แทนการแยกเสียงผู้พูดตอน Transcribe
🚀 การใช้งาน
สามารถใช้กับ Repo หลัก หรือ Fork ของ Jarod Mica ก็ได้ (เดี๋ยวมาเขียนเพิ่มอีกที ถ้ามีเวลา)
📊 ผลลัพธ์ที่ได้ (Pros & Cons)
✅ ข้อดี
- เวลาการ Generate พอๆ กับ F5-TTS
- การให้อารมณ์ดีกว่ามาก
❌ ข้อเสีย
Dataset ที่ใช้เทรนค่อนข้างสะเปะสะปะ (เข้าข่ายรำไม่ดีโทษปี่โทษกลอง lol)
- ความซ้ำซ้อน: มีข้อความซ้ำแต่คนละผู้พูด หรือบางทีก็ผู้พูดคนเดิมซ้ำไปมา 10-30 รอบต่อประโยคได้
- เรื่อง Spacebar และตัวอักษร:
- ข้อความทุกข้อความติด Spacebar ผมเลยลบ Spacebar ออกหมดเลย ผลปรากฏว่าโมเดลเจอ Spacebar แล้วจะซ้ำคำแทน หรือบางทีก็มึน
- ⚠️ คำแนะนำ: ให้เขียนข้อความแบบ ไม่มี Spacebar, เครื่องหมาย, เลข และภาษาอื่นๆ นอกจากไทย (เพราะ Dataset มีแต่ภาษาไทยล้วน เลขก็ไม่มี เขียนแทนเป็น หนึ่ง สอง เป็นต้น)
- หรือสร้าง Script ที่ Preprocess Prompt ก่อน Gen บน WebUI ก็ได้
- อารมณ์: Dataset อารมณ์ทื่อ ความสามารถด้านอารมณ์น่าจะมาจาก Base Model ซะส่วนใหญ่ ทำให้ผลลัพธ์ส่วนมากค่อนข้างแปลกถ้าใส่อารมณ์เข้าไป (ที่โชว์ใน Demo คือหยิบเอาผลลัพธ์ดีๆ มาเท่านั้น)
- ความยาว (Length): เนื่องจาก Length per segment อยู่ที่ประมาณ 1-15 วินาทีเท่านั้น ทำให้เมื่อเจนมากกว่านั้นจะเริ่มเพี้ยน ต้องกำหนด Chunk ให้เก็บ Token ไม่ถึง 40 ไม่งั้นจะเจอปัญหาเสียงหายช่วงแรกอีก (เนื่องจาก Dataset เป็นการรวบรวมแบบคลิกแล้วพูด)
🔮 การพัฒนาต่อ
ตัวโมเดลเทรนเพิ่มได้ แต่ผมว่าจะใช้ Dataset ใหม่ในการเทรนเวอร์ชั่นต่อไป ใครอยากเอาเวอร์ชั่นนี้ไปเทรนเพิ่มเติมทำได้เต็มที่ สอบถามเพิ่มเติมที่ผมได้
📜 License
ตาม Repo หลัก เท่าที่อ่านคือเอาไปใช้ได้ถ้าคุณไม่ใช่บริษัทพันล้าน
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
🙋
Ask for provider support
Model tree for williampike/indextts2-thai_finetune_v1
Base model
IndexTeam/IndexTTS-2