- Chatterbox คือโมเดล TTS (สังเคราะห์เสียงพูด) แบบโอเพนซอร์สล่าสุด ที่ Resemble AI เปิดตัว
- ในการประเมินเปรียบเทียบกับคู่แข่งอย่าง ElevenLabs พบว่าได้ผลลัพธ์ที่ ได้รับความนิยมอย่างต่อเนื่อง
- มาพร้อมความสามารถเฉพาะอย่าง การควบคุมระดับการแสดงอารมณ์เกินจริง ทำให้สร้างการแสดงออกทางเสียงได้หลากหลาย
- ฝึกด้วยแบ็กโบน Llama ขนาด 500 ล้านพารามิเตอร์ และข้อมูลที่ผ่านการคัดกรองจำนวน 500,000 ชั่วโมง
- เสียงที่สร้างทั้งหมดมี ลายน้ำ Perth ฝังมาในตัว เพื่อช่วยป้องกันการใช้งานโดยไม่ได้รับอนุญาตและการปลอมแปลง
แนะนำ Chatterbox TTS และความสำคัญ
- Chatterbox เป็นโมเดล TTS (แปลงข้อความเป็นเสียงพูด) แบบโอเพนซอร์สระดับพร้อมใช้งานจริงในโปรดักชัน ที่พัฒนาโดย Resemble AI
- ใช้ไลเซนส์ MIT จึงนำไปใช้ได้อย่างอิสระ และมีการเปิดเผยผลที่พิสูจน์แล้วว่าคุณภาพยอดเยี่ยม แม้เทียบกับโมเดลเชิงพาณิชย์แบบปิดซอร์ส เช่น ElevenLabs
- นำไปใช้ได้กับงานสร้างคอนเทนต์หลากหลาย ทั้งวิดีโอ มีม เกม และ AI agent อีกทั้งยังเป็นโอเพนซอร์ส TTS ตัวแรกที่มีฟีเจอร์ ควบคุมระดับการแสดงอารมณ์เกินจริง
- สามารถทดลองและใช้งานจริงได้ผ่านแอป Hugging Face Gradio หรือ API ของตนเอง และหากต้องการรองรับงานขนาดใหญ่หรือความแม่นยำสูง ก็มี Commercial API (ultra-low latency ต่ำกว่า 200ms) ให้บริการ
คุณสมบัติหลัก
- Zero-shot TTS ล้ำสมัย: ถ่ายทอดสไตล์ผู้พูดได้หลากหลายโดยไม่ต้องมีข้อมูลเพิ่มเติม
- แบ็กโบน Llama 0.5B: นำโครงสร้าง large language model มาประยุกต์ใช้กับการสังเคราะห์เสียงพูด
- ปรับระดับการแสดงอารมณ์เกินจริง/ความเข้มข้นได้: ควบคุมเอกลักษณ์และระดับอารมณ์ของผู้พูดแต่ละคนได้อย่างละเอียด
- Alignment-informed inference: ใช้ข้อมูลการจัดแนวระหว่างหน่วยเสียงกับเสียงจริง เพื่อให้ได้คุณภาพการสร้างที่เสถียรสูงมาก
- ข้อมูลคัดกรอง 0.5M ชั่วโมง: ฝึกด้วยชุดข้อมูลเสียงขนาดใหญ่และคุณภาพสูง
- ลายน้ำในตัว: ใช้ Perth (Perceptual Threshold) watermarking ของ Resemble AI เพื่อติดตามผลงานที่สร้างและป้องกันการใช้งานโดยไม่ได้รับอนุญาต
- สคริปต์แปลงเสียง: มีฟังก์ชัน voice conversion ในตัวที่ใช้งานได้สะดวก
- การยืนยันประสิทธิภาพ: มีผลการประเมินว่า ดีกว่า ElevenLabs
เคล็ดลับการใช้งาน
- TTS ทั่วไป/voice agent: ใช้ค่าเริ่มต้น (Exaggeration=0.5, cfg_weight=0.5) จะให้คุณภาพที่สมดุลในสถานการณ์ส่วนใหญ่
- หากเป็นสไตล์ผู้พูดที่เร็ว การปรับค่า cfg_weight ลงมาแถว 0.3 จะช่วยให้ความเร็วฟังดูเป็นธรรมชาติมากขึ้น
- การสังเคราะห์เสียงที่ใช้อารมณ์หรือดราม่ามากขึ้น: เพิ่ม Exaggeration เป็น 0.7 ขึ้นไป และลด cfg_weight เพื่อเสริมเอฟเฟกต์การพูดที่ดราม่ามากขึ้น
- ยิ่งความเข้มของอารมณ์ (exaggeration) สูง ความเร็วการพูดก็จะยิ่งเร็วขึ้น และหากลด cfg_weight ลง ก็สามารถปรับให้พูดช้าลงและชัดเจนขึ้นได้
ภาษาที่รองรับ
- ขณะนี้รองรับเฉพาะภาษาอังกฤษ
โอเพนซอร์สที่ใช้อ้างอิง/พึ่งพา
- สะท้อนเทคโนโลยีโมเดลเสียงและภาษาใหม่ ๆ มากมาย เช่น Cosyvoice, Real-Time-Voice-Cloning, HiFT-GAN, Llama 3, S3Tokenizer
ลายน้ำ Perth ในตัว
- Perth (Perceptual Threshold) watermarking: ฝัง neural watermark ลงในเสียงที่สร้างทั้งหมดโดยไม่ลดทอนคุณภาพเสียง
- ลายน้ำยังคงอยู่แม้ผ่าน การบีบอัด MP3, การตัดต่อเสียง, การแปรรูปเสียง
- ตรวจจับอัตโนมัติได้ด้วยความแม่นยำใกล้ 100% ช่วยรองรับการติดตามต้นทาง ป้องกันการปลอมแปลง และส่งเสริมการใช้งาน AI อย่างรับผิดชอบ
ตัวอย่างการดึงลายน้ำ
- สามารถตรวจสอบได้ด้วยสคริปต์แยกว่ามีลายน้ำดังกล่าวอยู่หรือไม่
- ใช้แพ็กเกจ Python ชื่อ perth และ librosa เพื่อดึงค่าลายน้ำ (0 หรือ 1) จากไฟล์เสียงได้
ชุมชน
- มีการเปิด ชุมชน Discord อย่างเป็นทางการ ทุกคนสามารถเข้าร่วมและร่วมมือกันได้
ข้อสงวนสิทธิ์
- โมเดลนี้ห้ามใช้ในทางที่เป็นอันตราย และพรอมป์ต์ใช้เฉพาะข้อมูลที่เผยแพร่สู่สาธารณะบนอินเทอร์เน็ต
1 ความคิดเห็น
ความเห็นจาก Hacker News
เขาโฆษณาว่าเป็น imperceptible neural watermarks ที่ยังคงอยู่ได้แม้ผ่านการบีบอัด MP3 การตัดต่อเสียง และการดัดแปลงสารพัดรูปแบบ พร้อมความแม่นยำในการตรวจจับที่เกือบ 100%
แต่ก็เลยสงสัยว่า ถ้าแค่คอมเมนต์การเรียกใช้ฟังก์ชัน
apply_watermarkในtts.pyออก ก็เท่ากับปิดการใส่ลายน้ำได้ง่าย ๆ ไม่ใช่หรือสำหรับลายน้ำแบบนี้ เดิมทีคิดว่าจุดประสงค์คือต้องซ่อนไว้ในตัวโมเดลเองเพื่อไม่ให้ถูกถอดออกได้ง่าย
แต่พอมาเพิ่มลายน้ำเป็นขั้นตอน post-processing แยกต่างหากในโมเดลโอเพนซอร์ส ก็เลยอดสงสัยไม่ได้ว่าตกลงจะใส่ลายน้ำไปเพื่ออะไร
คล้ายกับที่ Stable Diffusion เวอร์ชันดั้งเดิมก็มี content filter
และอาจตั้งใจป้องกันไม่ให้ข้อมูลฝึกปนเปื้อนด้วย
--no-watermarkอยู่ใน parser เลยสุดท้ายแล้วดูเหมือนเขาทำให้มันเป็น “ฟีเจอร์” อย่างหนึ่ง สำหรับคนที่จะเอาไปใส่ในผลิตภัณฑ์ที่ใหญ่กว่า
ผู้นำตลาด TTS ตอนนี้ชัดเจนอยู่แล้ว และบริษัทอย่าง Resemble, PlayHT ฯลฯ ต้องปล่อยน้ำหนักโมเดลและซอร์สโค้ดให้เหล่านักพัฒนา ถึงจะพอมีส่วนแบ่งตลาดได้บ้าง
การใส่ลายน้ำก็ดูเป็น CYA สำหรับรับมือเสียงวิจารณ์เรื่องการนำสื่อไปใช้ในทางที่ผิด
ถ้าไม่มีอะไรแบบนี้ สื่อกับฝั่งต่อต้าน AI อย่าง 404Media ก็คงหยิบประเด็นการใช้งานผิดวัตถุประสงค์ขึ้นมาโจมตี
แนวทางที่ถูกควรเป็นการเปิดซอร์ส เปิดเวต และมี API/ตัวเลือก fine-tuning แยกให้
อ้างอิง บทความของ 404Media
ถ้าไฟล์เสียงเดโมไม่ได้คัดมาเฉพาะตัวอย่างที่ดีที่สุดเกินไป ก็คิดว่านี่เป็นรีลีสที่ดีมาก
พูดอยู่เสมอว่าจากที่ลองมาจริง ๆ ข้อจำกัดของเสียง AI ทุกวันนี้ไม่ได้อยู่ที่คุณภาพ TTS เท่าไร แต่อยู่ที่การรู้จำเสียงพูด (transcription) มากกว่า
ถ้าไม่นับว่าช่วงหลังมีอะไรเปลี่ยนไป ก็ยังเป็นข้อจำกัดเดิมอยู่
ยังไม่เคยลองส่ง transcription หลายเวอร์ชันหรือ confidence level ให้ LLM แต่คิดว่าน่าจะเอาไปใช้ประโยชน์ได้ดี
แถมยังเป็นประโยคที่ยกมาจาก Pulp Fiction ด้วย ซึ่งก็น่าสนุกดี
เดโมทั่วไปก่อนหน้านี้มักจืดและปลอดภัยเกินไปจนเบื่อแล้ว
ในคอมมูนิตี้ TTS สายอินดี้มักใช้ Navy Seals copypasta กัน แต่การที่บริษัทบริการอย่าง Resemble กล้าใส่ประโยคแบบนี้เข้ามาถือว่าแปลกใหม่
Copypasta Wiki, ตัวอย่าง Navy Seal copypasta
พอใส่สำเนียงออสเตรเลียของตัวเองเข้าไป มันกลับออกมาเป็นสำเนียงอังกฤษแบบ RP ที่นุ่มมาก
ฟังดูเป็นธรรมชาติมาก แต่ชัดเจนว่าไม่ใช่การถอดสำเนียงของฉันจริง ๆ
สำหรับงานใช้งานจริง หลายกรณีให้ความสำคัญกับเสียงที่ชัดและเป็นธรรมชาติมากกว่า ดังนั้นในงานแบบนั้นมันเหมาะอย่างยิ่ง
โมเดล “open” ที่ดีกว่าสำหรับงานนี้ เช่น
ในทางปฏิบัติมีเพียง Seed-VC ที่ปล่อยโค้ดเทรน/fine-tuning แต่ทั้งหมดทำ zero-shot ได้ดีกว่า Chatterbox
โดยเฉพาะ MegaTTS3 ของ ByteDance ที่แทบไม่มีใครตามทันนอกจาก ElevenLabs
ByteDance เหนือกว่าทั้งเงิน คน และข้อมูล
ถ้าเป้าหมายคือการโคลนเสียงแบบ zero-shot โดยไม่ต้อง fine-tuning โมเดลเหล่านี้น่าจะเป็นตัวเลือกที่ดีกว่า
พร้อมแนบลิงก์โมเดลที่พร้อมนำไป deploy
และแจ้งว่ายังอยู่ระหว่างทำรองรับการสตรีมมิง
แต่แม้แต่สำเนียงที่จริง ๆ ก็พบได้ค่อนข้างบ่อย มันก็ยังปนสำเนียงอื่นออกมาได้เหมือนกัน เช่น อัดเสียงสก็อตแลนด์แต่ได้กลิ่นอายออสเตรเลีย
สำเนียงยอร์กเชียร์ก็จับผิดเหมือนกัน
เพราะอย่างนั้นในสภาพพื้นฐานจึงยังต้องใช้ฮาร์ดแวร์ผู้บริโภคที่สเปกค่อนข้างสูง
แต่ก็มองว่ายังมีโอกาสให้ปรับแต่งให้ดีขึ้นได้อีกมากในอนาคต
ลิงก์ issue
ถ้าโมเดลมีคุณค่ามากพอ ก็น่าจะมีใครสักคนหาวิธีให้รันด้วย VRAM น้อยกว่านี้ได้
มีคนลองจริงบน Nvidia 2060 รุ่นเก่าแล้วพบว่า VRAM พีคประมาณ 5GB
ถึงจะมีให้ลองใช้ฟรี แต่ค่าใช้จ่ายจริงอาจทำให้การ self-host ไม่มีความหมายก็ได้
อยากรู้ว่าต้องใช้ GPU ราคาแพงไหม หรือรันบนโน้ตบุ๊กอายุ 12 ปีได้หรือเปล่า
ปัญหาที่เจอมีดังนี้:
uv pipไปค้นเฉพาะคลังของ pytorchpip install chatterbox-ttsมีบั๊กในโหมด CPU onlyทุกครั้งที่ต้องมารันโปรเจกต์ Python ของคนอื่นแล้วต้องเจองานจุกจิกแบบนี้ซ้ำ ๆ ก็รู้สึกหมดแรง
SparkTTS มีพารามิเตอร์ให้มากกว่า และจากโค้ดบน GitHub ก็ดูเหมือนจะเปิดทางให้ควบคุมอารมณ์ได้ละเอียดขึ้น
สำหรับฉัน เคยได้ผลใกล้เคียงกับคอนเซปต์ที่ต้องการจากบางโมเดลโดยใส่คำสั่งเรื่อง prosody และ tonality แบบจัดเต็มในข้อความ
แต่ก็ยังยุ่งยากกว่าแนวทางการออกแบบอารมณ์ที่ใช้งานง่ายของ ElevenLabs มาก
ถึงอย่างนั้นการที่มันตามได้ขนาดนี้จากตัวอย่างสั้นมากก็ถือว่าน่าทึ่งทีเดียว
อีกอย่าง ถ้าคลื่นเสียงตัวอย่างแบบ one-shot มี noise ปะปนอยู่ บางครั้ง Chatterbox ก็แถมเสียงประหลาดไม่ทราบที่มาช่วงท้ายให้ด้วย
โดยเฉพาะเวลาให้อ่านอะไรอย่าง Divine Comedy ของดันเต้ ก็เหมือนได้สัมผัส “เสียงจากนรก” ไปในตัว
(เหลือแค่ว่า Amazon จะเปิดเผยข้อเท็จจริงนั้นหรือไม่)
เครื่องมือแปลงเป็น audiobook ชื่อ audiblez
พอผ่านไปอีก 1 ปี ตอนนี้ก็น่าจะดีขึ้นอีกอย่างแน่นอน