เมื่อกี้เลื่อนๆ ฟีด Dev.to ไปเจอโพสต์หนึ่งสะดุดตาสุดๆ เป็นของคุณ Naman579 ที่เอาโปรเจกต์ Shiksha มาแชร์ จากการเข้าร่วม challenge "10 Days of Voice Agents — VoiceForBharat Edition" ของ Murf AI คือแกบอกว่าเริ่มจากไอเดียง่ายๆ แค่อยากทำ voice agent ที่ช่วยนักเรียนเรียนผ่านการสนทนาธรรมชาติ แล้ว 10 วันมันกลายเป็นระบบเรียนรู้ด้วยเสียงเต็มรูปแบบ มีทั้ง memory, tools, human escalation, call analytics และ specialist agent แยกเลย แบบว่าอ่านจบแล้วรู้สึกว่าเราเองยังทำได้แค่ chatbot ธรรมดาเลยอ่ะ อยากรู้ว่ามีใครในกลุ่มนี้เคยลองอะไรแนวๆ นี้บ้างมั้ย แล้วคิดยังไงกับโครงสร้างแบบนี้
รายละเอียดในโพสต์มันแน่นมากนะ เทคสแต็คคือ LiveKit สำหรับ real-time voice, Deepgram เป็น speech-to-text, ใช้ Gemini เป็นตัว LLM, แล้ว text-to-speech เป็น Murf Falcon ส่วน backend เป็น Python เก็บ memory ใน SQLite แล้วทำ call analytics ด้วย Flask + SQLite อีกที ที่ผมว่ามันเจ๋งคือตรงที่แกออกแบบระบบให้มี guardrails ชัดเจน เช่น สั่งให้ agent พูดสั้นๆ แบบเหมาะกับการฟัง ไม่ให้เปิดเผย technical error ให้นักเรียนเห็น และถ้า API ภายนอกล่มก็ให้ใช้ fallback data แทนที่จะเงียบไปเลย ที่สำคัญคือมี flow การส่งต่อให้มนุษย์ (human escalation) ตอนที่นักเรียนติดจริงๆ หรือขอครู แล้วก็มี dashboard วัดผลว่า call ไหนสำเร็จหรือล้มเหลว โดยนิยามว่าสำเร็จ = นักเรียนตอบคำถาม quiz ครบ แล้วมี Maths Specialist แยกออกไปอีกตัวหนึ่งเพื่อรับช่วงการเรียนคณิตศาสตร์โดยเฉพาะ
ส่วนตัวผมว่าประเด็นที่แกเล่าว่า "voice agent ไม่ได้สำคัญแค่ตัว model แต่คือ orchestration รอบข้างต่างหาก" นี่โดนมากๆ โดยเฉพาะตอนแกเล่าถึงปัญหาที่เจอคือการ handoff ระหว่าง agent หลักกับ specialist ที่ไม่ลื่นไหล ต้องไปไล่ดูทีละชั้นทั้ง session state, context, tool execution ฯลฯ ผมเห็นด้วยสุดๆ เพราะการพูดคุยด้วยเสียงมันไวต่อความผิดพลาดมาก แค่ response ช้าครึ่งวินาทีหรือคำตอบยาวเกินไปก็รู้สึกอึดอัดแล้ว ยิ่งถ้า API fail ระหว่างสนทนานี่คือพังทั้งประสบการณ์เลย ผมว่าหลายคนอาจจะมองข้ามจุดนี้ไปเพราะมัวแต่สนใจว่า LLM ฉลาดแค่ไหน
ที่ผมแอบกังวลคือเรื่อง privacy ของนักเรียน เพราะระบบนี้เก็บทั้งชื่อ ระดับการเรียนรู้ หัวข้อที่เรียน แล้วถ้าจะ escalate ไปหามนุษย์ก็ต้องส่งข้อมูลบางส่วนไปด้วย แม้แกจะบอกว่าจำกัดข้อมูลที่ไม่จำเป็นแล้ว แต่สำหรับเด็กๆ หรือนักเรียนนี่ผมว่าต้องระวังเป็นพิเศษ แล้วก็อยากรู้ว่าเสียงจาก Murf Falcon ที่ว่านี่ฟังดูเป็นธรรมชาติขนาดนั้นเลยหรือเปล่า หรือยังฟังดูหุ่นยนต์อยู่ เลยอยากถามเพื่อนๆ ในกลุ่มครับ มีใครเคยลอง build voice agent ด้วย stack แบบนี้บ้างมั้ย แล้วคิดว่าจุดไหนที่ยากที่สุด? หรือถ้าให้เลือกปรับปรุงต่อจากโปรเจกต์นี้หนึ่งอย่าง จะเลือกทำอะไรครับ?
รายละเอียดในโพสต์มันแน่นมากนะ เทคสแต็คคือ LiveKit สำหรับ real-time voice, Deepgram เป็น speech-to-text, ใช้ Gemini เป็นตัว LLM, แล้ว text-to-speech เป็น Murf Falcon ส่วน backend เป็น Python เก็บ memory ใน SQLite แล้วทำ call analytics ด้วย Flask + SQLite อีกที ที่ผมว่ามันเจ๋งคือตรงที่แกออกแบบระบบให้มี guardrails ชัดเจน เช่น สั่งให้ agent พูดสั้นๆ แบบเหมาะกับการฟัง ไม่ให้เปิดเผย technical error ให้นักเรียนเห็น และถ้า API ภายนอกล่มก็ให้ใช้ fallback data แทนที่จะเงียบไปเลย ที่สำคัญคือมี flow การส่งต่อให้มนุษย์ (human escalation) ตอนที่นักเรียนติดจริงๆ หรือขอครู แล้วก็มี dashboard วัดผลว่า call ไหนสำเร็จหรือล้มเหลว โดยนิยามว่าสำเร็จ = นักเรียนตอบคำถาม quiz ครบ แล้วมี Maths Specialist แยกออกไปอีกตัวหนึ่งเพื่อรับช่วงการเรียนคณิตศาสตร์โดยเฉพาะ
ส่วนตัวผมว่าประเด็นที่แกเล่าว่า "voice agent ไม่ได้สำคัญแค่ตัว model แต่คือ orchestration รอบข้างต่างหาก" นี่โดนมากๆ โดยเฉพาะตอนแกเล่าถึงปัญหาที่เจอคือการ handoff ระหว่าง agent หลักกับ specialist ที่ไม่ลื่นไหล ต้องไปไล่ดูทีละชั้นทั้ง session state, context, tool execution ฯลฯ ผมเห็นด้วยสุดๆ เพราะการพูดคุยด้วยเสียงมันไวต่อความผิดพลาดมาก แค่ response ช้าครึ่งวินาทีหรือคำตอบยาวเกินไปก็รู้สึกอึดอัดแล้ว ยิ่งถ้า API fail ระหว่างสนทนานี่คือพังทั้งประสบการณ์เลย ผมว่าหลายคนอาจจะมองข้ามจุดนี้ไปเพราะมัวแต่สนใจว่า LLM ฉลาดแค่ไหน
ที่ผมแอบกังวลคือเรื่อง privacy ของนักเรียน เพราะระบบนี้เก็บทั้งชื่อ ระดับการเรียนรู้ หัวข้อที่เรียน แล้วถ้าจะ escalate ไปหามนุษย์ก็ต้องส่งข้อมูลบางส่วนไปด้วย แม้แกจะบอกว่าจำกัดข้อมูลที่ไม่จำเป็นแล้ว แต่สำหรับเด็กๆ หรือนักเรียนนี่ผมว่าต้องระวังเป็นพิเศษ แล้วก็อยากรู้ว่าเสียงจาก Murf Falcon ที่ว่านี่ฟังดูเป็นธรรมชาติขนาดนั้นเลยหรือเปล่า หรือยังฟังดูหุ่นยนต์อยู่ เลยอยากถามเพื่อนๆ ในกลุ่มครับ มีใครเคยลอง build voice agent ด้วย stack แบบนี้บ้างมั้ย แล้วคิดว่าจุดไหนที่ยากที่สุด? หรือถ้าให้เลือกปรับปรุงต่อจากโปรเจกต์นี้หนึ่งอย่าง จะเลือกทำอะไรครับ?
ความคิดเห็น 1
กำลังโหลดความคิดเห็น...