แนวทางปฏิบัติที่ดีที่สุดของเอเจนต์เสียง
บทความนี้รวบรวมแนวทางปฏิบัติที่พบบ่อยของเอเจนต์เสียงในการเลือก การปรับจูน และการเผยแพร่ ช่วยให้คุณได้เอเจนต์เสียงที่「ฟังชัด ตอบแม่น พูดเป็นธรรมชาติ」เร็วขึ้น ความหมายและช่วงค่าของพารามิเตอร์แต่ละตัวดูได้ที่คู่มือการตั้งค่า
จะเลือกโหมดเอนจินอย่างไร
กำหนดโหมดตามความต้องการก่อน แล้วจึงเลือกโมเดล:
- ต้องการความหน่วงต่ำที่สุด ภาษาพูดเป็นธรรมชาติ → Real-time model (REALTIME): ความหน่วงต่ำที่สุด เหมาะกับสถานการณ์ที่ไวต่อความเร็วในการตอบสนองและบทพูดค่อนข้างเปิดกว้าง เช่น การพูดคุยเล่น การฝึกสนทนา การนำทางด้วยเสียง
- ต้องการความสามารถด้านข้อความที่แข็งแกร่ง การเรียกใช้เครื่องมือ บทพูดที่เข้มงวด → ASR-LLM-TTS: ความหน่วงสูงสุด โมเดลข้อความขนาดใหญ่ควบคุมได้มากที่สุด สามารถเชื่อมต่อฐานความรู้ ฐานข้อมูล และเครื่องมือได้อย่างเสถียร เหมาะกับสถานการณ์อย่างบริการลูกค้าด้วยเสียง การดำเนินการทางธุรกิจ โทนเสียงกำหนดโดย TTS อิสระ สะดวกต่อการทำเสียงแบรนด์ให้เป็นหนึ่งเดียว
- โมเดลรองรับอินพุตเสียงในตัว ต้องการทำให้เส้นทางเรียบง่าย → LLM+TTS: ความหน่วงปานกลาง ตัดช่วง ASR อิสระออกไป ให้โมเดลขนาดใหญ่「ฟังเข้าใจ」เสียงโดยตรง เส้นทางสั้นลง
การปรับจูน VAD และการขัดจังหวะ
VAD กำหนด「Agent จะถือว่าคุณพูดจบเมื่อใด」ซึ่งส่งผลต่อประสบการณ์โดยตรง เลือกใช้ตามสถานการณ์:
- บริการลูกค้าด้วยเสียง / สายด่วน (ต้องการความเร็ว ขัดจังหวะได้): ปรับความไวของการขัดจังหวะด้วยเสียงให้สูงขึ้นพอสมควร เพื่อให้ผู้ใช้แทรกพูดได้ทุกเมื่อ การหยุดตัดประโยคอาจเล็กลงเล็กน้อยเพื่อย่นเวลารอการตอบ ข้อแลกเปลี่ยนคือในสภาพแวดล้อมที่มีเสียงดังจะถูกขัดจังหวะผิดพลาดได้ง่ายขึ้น
- ถาม-ตอบเชิงลึก / อ่านออกเสียง (ต้องการความเสถียร ขัดจังหวะผิดพลาดน้อย): ปรับความไวของการขัดจังหวะด้วยเสียงให้ต่ำลง และปรับการหยุดตัดประโยคให้ใหญ่ขึ้นพอสมควร เพื่อหลีกเลี่ยงการถูกแย่งพูดขณะที่ผู้ใช้หยุดคิด
- สภาพแวดล้อมที่มีเสียงดัง: ในโหมดพรีเซ็ตของ Real-time model ปรับเกณฑ์การกระตุ้นด้วยระดับความดังให้สูงขึ้น เพื่อลดการทริกเกอร์ผิดพลาดจากเสียงรบกวนพื้นหลัง
- โหมดพรีเซ็ต vs โหมดเชิงความหมาย (เฉพาะ Real-time model): หากต้องการการตัดประโยคที่เสถียรและคาดเดาได้ ใช้โหมดพรีเซ็ต หากต้องการให้ Agent ตัดสินจากความหมายว่าผู้ใช้พูดจบหรือไม่ ใช้โหมดเชิงความหมายพร้อมกับปรับความเร็วในการตอบสนองเพื่อปรับจังหวะ
แนะนำให้ทดลองด้วยค่าเริ่มต้นก่อน (การหยุดตัดประโยค 500 ms การขัดจังหวะด้วยเสียง 0.5) แล้วจึงปรับจูนทีละขั้นตามการบันทึกเสียงจริง โดยเปลี่ยนทีละพารามิเตอร์เท่านั้น
วิธีเขียนพรอมป์ตัวตน
ในสถานการณ์เสียง ผู้ใช้「ฟัง」ไม่ใช่「อ่าน」พรอมป์จึงควรกระชับและเป็นภาษาพูด:
- ระบุบทบาทและขอบเขตให้ชัดเจน: เป็นใคร ทำอะไรได้ ไม่พูดถึงอะไร
- กำหนดให้ตอบด้วยประโยคสั้น หลีกเลี่ยงย่อหน้ายาว เครื่องหมายหัวข้อ ตาราง และโครงสร้างอื่นที่ไม่เหมาะกับการอ่านออกเสียง
- ตกลงการแสดงออกแบบภาษาพูด: ตัวเลข จำนวนเงิน เวลา ให้พูดออกมาเป็นภาษาพูดตามธรรมชาติให้มากที่สุด ลดศัพท์เฉพาะที่แข็งกระด้าง
- ระบุภาษาและน้ำเสียง: เช่น「ตอบด้วยภาษาไทยอย่างสุภาพและกระชับ」
การล้างข้อความ TTS
ข้อความคำตอบของโมเดลขนาดใหญ่มักมีสัญลักษณ์ หากสังเคราะห์โดยตรงจะถูก「อ่าน」ออกมา ใช้สองรายการคือลบและแทนที่ในการล้าง:
- ลบ: วงเล็บ
(), วงเล็บเหลี่ยม[], วงเล็บหนังสือ《》, ดอกจัน*, เครื่องหมายชาร์ป#และสัญลักษณ์ Markdown กับการจัดหน้าอื่น ๆ เพื่อหลีกเลี่ยงการอ่าน「ดอกจัน」「ชาร์ป」ออกมา - แทนที่ด้วยช่องว่าง: ใช้กับสัญลักษณ์ที่ต้องการการหยุดแต่ไม่ควรอ่านออกมา เพื่อปรับปรุงความเป็นธรรมชาติของการตัดประโยค
- วงเล็บที่เป็นคู่กรอกเป็นชุดเดียว (เช่น
()) สัญลักษณ์หลายตัวคั่นด้วยจุลภาคภาษาอังกฤษ
ใช้ร่วมกับพรอมป์ตัวตนที่กำหนดให้โมเดล「อย่าส่งออก Markdown」สองทางประกอบกันจะได้ผลดีกว่า
การนำทางต้อนรับและภาพลักษณ์เสมือน
- ประโยคต้อนรับควรสั้น ตรงประเด็น บอกตัวตนและวัตถุประสงค์ในประโยคเดียว เช่น「สวัสดีค่ะ ที่นี่คือฝ่ายบริการลูกค้า XX มีอะไรให้ช่วยไหมคะ」
- วิดีโอภาพลักษณ์กำลังพูด / กำลังรอต้องให้เฟรมหัวและท้ายต่อกันอย่างเด็ดขาด มิฉะนั้นเมื่อวนลูปจะเกิดการกระโดดเฟรมที่เห็นได้ชัด ภาพลักษณ์กำลังพูดสอดคล้องกับ「กำลังพูด」ภาพลักษณ์กำลังรอสอดคล้องกับ「กำลังฟัง」
- ธุรกิจหลายภาษาอย่าลืมตั้งค่าประโยคต้อนรับและภาพลักษณ์แยกตามแต่ละภาษา
กลยุทธ์การควบคุมการโทร
ตั้งค่า「ตัวสำรอง」ให้การสนทนาแต่ละสายไว้ให้ดี เพื่อหลีกเลี่ยงการไม่คืบหน้าและการครอบครองทรัพยากร:
- การควบคุมเมื่อเงียบ: ตั้งหมดเวลาเงียบที่เหมาะสม (ค่าเริ่มต้น 10 วินาที) และกำหนดข้อความแจ้งเมื่อเงียบที่เป็นธรรมชาติสักประโยค เช่น「ยังอยู่ไหมคะ ต้องการให้ดำเนินการต่อไหมคะ」เพื่อดึงผู้ใช้กลับมา
- การวางสายอัตโนมัติ: ใช้ระยะเวลาการโทรสูงสุด (ค่าเริ่มต้น 600 วินาที) และจำนวนครั้งของความเงียบสูงสุด (ค่าเริ่มต้น 5 ครั้ง) เป็นตัวสำรอง เพื่อป้องกันการโทรที่ไม่สิ้นสุดหรือการค้างสายเมื่อไม่มีคนตอบเป็นเวลานาน ข้อความแจ้งวางสายจำกัดไม่เกิน 20 tokens กล่าวลาสั้น ๆ ก็พอ
ข้อควรระวังในการใช้เสียงพื้นหลัง
- ระดับความดังพื้นหลังไม่ควรกลบเสียงคน (ค่าเริ่มต้น 30 ช่วง 1~50) หากสูงเกินไปจะลดความแม่นยำในการรู้จำและความชัดเจนของการโทร
- เสียงพื้นหลังกำหนดเองต้องเป็น mp3 และ ≤ 1 MB
คุณภาพการรู้จำเสียง
- เมื่อมุ่งเน้นโดเมนเฉพาะ ให้ใช้ คำสั่งถอดเสียง ASR ให้เป็นประโยชน์ในการชี้แนะคำเฉพาะ ชื่อแบรนด์ ศัพท์เฉพาะทาง จะช่วยปรับปรุงความแม่นยำในการรู้จำได้อย่างเห็นได้ชัด
- เมื่อภาษาของผู้ใช้คงที่ ให้ระบุภาษาของเสียงแทนการ「รู้จำอัตโนมัติ」ให้มากที่สุด จะเสถียรกว่า
- แพลตฟอร์มมีการตรวจสอบคุณภาพเสียงในตัว: จะทิ้งเสียงที่สั้นเกินไป (ไม่ถึง 1 วินาที) โดยอัตโนมัติ และกรองวลี「หูแว่ว」ที่พบบ่อยในการรู้จำ (เช่น「ขอบคุณที่รับชม」「ยินดีต้อนรับติดตาม」และผลลัพธ์ไร้ความหมายอื่น ๆ) เพื่อลดการทริกเกอร์ผิดพลาด การที่ผลลัพธ์เหล่านี้ถูกละเว้นเป็นเรื่องปกติ ไม่ต้องตั้งค่าเพิ่มเติม
การเผยแพร่และการเชื่อมต่อ
- การฝังในหน้าเว็บ: นำเอเจนต์เสียงไปเป็นคอมโพเนนต์สนทนาด้วยเสียงที่ฝังลงในเว็บไซต์ ดู การเชื่อมต่อ Iframe
- การเชื่อมต่อโทรศัพท์: ผูกหมายเลข Twilio เพื่อรับสายเข้า หรือโอนสายเข้าผ่านระบบ SIP ของบุคคลที่สาม ดูคู่มือปฏิบัติการการเชื่อมต่อระบบโทรศัพท์
การคิดค่าบริการและการทำงานพร้อมกัน
- การโทรด้วยเสียงหักแต้มตามปริมาณการใช้เสียง แต้มหมดจะทำให้สายเข้าถูกปฏิเสธ โปรดเผื่อยอดคงเหลือไว้
- ให้ความสนใจกับขีดจำกัดการโทรพร้อมกัน: สายเข้าใหม่ที่เกินขีดจำกัดจะถูกปฏิเสธ ก่อนเผยแพร่ให้ประเมินความต้องการการทำงานพร้อมกันตามปริมาณการโทรที่คาดไว้
- บันทึกการโทรสามารถดูได้ในบันทึก / ประวัติการสนทนา ประกอบด้วยแหล่งที่มาของการสนทนา หมายเลขที่โทรเข้ามา ถาม-ตอบหลายรอบ และลำดับเวลาการทำงาน สะดวกต่อการย้อนดูและปรับปรุง
