Paxa Labs

บทความSpeech-to-Text

ช่วงผู้พูดในบทถอดเสียงสายโทรศัพท์ภาษาไทย

บทถอดสายที่มีสองเสียงในคอลัมน์เดียวคือปริศนา การแยกผู้พูดให้หมายเลขอย่างไร ไปป์ไลน์เปลี่ยนหมายเลขเป็นบทบาทอย่างไร และหมายเลขไม่เคยอ้างอะไร

· อ่าน 1 นาที

สายที่บันทึกไว้มีสองเสียงและหนึ่งแทร็กเสียง บทถอดในคอลัมน์เดียวอ่านเหมือนบทพูดคนเดียว และทุกคำถามที่ผู้ตรวจ QA ถามเริ่มด้วยว่าใครพูด เจ้าหน้าที่แจ้งข้อความที่ต้องแจ้งไหม หรือลูกค้าเป็นคนอ่านทวน ใครพูดถึงการคืนเงินก่อน การแยกผู้พูดตอบคำถามแรก และไปป์ไลน์ที่สร้างบนนั้นตอบที่เหลือ

บทความนี้ครอบคลุมว่า Paxa STT Lite ส่งอะไรกลับมาเมื่อเปิดแยกผู้พูด จับคู่หมายเลขผู้พูดกับบทบาทในสายอย่างไร และหมายเลขหยุดตรงไหน ปิดท้ายด้วยรูปร่างของการตรวจ QA ที่รันบนทุกสาย แทนการสุ่มตัวอย่าง

อะไรกลับมา#

ส่งไฟล์บันทึกโดยตั้ง diarization เป็น true คำตอบมีบทถอดเหมือนเดิม และมีอาร์เรย์ segments อยู่ข้างกัน แต่ละ segment คือหนึ่งช่วงพูด พร้อมหมายเลขผู้พูด ข้อความ และเวลาเริ่มกับจบเป็นวินาที ผู้พูดนับจาก 0 ตามลำดับที่ปรากฏครั้งแรก และหมายเลขคงที่ตลอดทั้งไฟล์

curl
AUDIO=$(base64 < meeting.m4a | tr -d '\n')
curl -X POST https://api.paxalabs.com/v1/stt \
  --max-time 300 \
  -H "Authorization: Bearer $PAXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"audio\": \"$AUDIO\", \"model\": \"paxa-stt-lite-v1-preview\", \"diarization\": true}"
Response
{
  "text": "สวัสดีค่ะคุณสมชายยอดชำระของท่านจำนวน พันสองร้อยห้าสิบ บาทครบกำหนดวันที่ สิบห้า สิงหาคมนี้ชำระผ่านแอปได้ตลอด ยี่สิบสี่ ชั่วโมงค่ะ",
  "segments": [
    {
      "speaker": 0,
      "text": "สวัสดีค่ะคุณสมชายยอดชำระของท่านจำนวน พันสองร้อยห้าสิบ บาทครบกำหนดวันที่ สิบห้า สิงหาคมนี้ชำระผ่านแอปได้ตลอด ยี่สิบสี่ ชั่วโมงค่ะ",
      "start": 0.12,
      "end": 10.06
    }
  ],
  "usage": {
    "seconds": 10.25,
    "credits": 1.43
  }
}

ขอเวลาระดับคำในคำขอเดียวกัน แล้วทุกคำจะมีหมายเลขผู้พูดด้วย ช่วงพูดให้รูปร่างของบทสนทนา และคำให้วินาทีภายในช่วงพูดที่วลีนั้นถูกพูด

สี่ช่วงพูดของสายสองฝ่าย
speaker 0   0.0s   สวัสดีค่ะ ฝ่ายบริการลูกค้า ยินดีให้บริการค่ะ
speaker 1   3.2s   สวัสดีครับ โทรมาเรื่องบิลเดือนนี้ครับ
speaker 0   6.1s   ขอทราบเลขที่บัญชีสี่ตัวท้ายด้วยค่ะ
speaker 1   8.9s   สี่ห้าหกเจ็ดครับ

จากหมายเลขเป็นบทบาท#

โมเดลให้หมายเลขแก่เสียง ไม่ผูกชื่อ บทบาท หรือตัวตนใด ในสายสองฝ่าย การจับคู่หมายเลขกับบทบาทเป็นของคุณ และกฎสามข้อครอบคลุมคอลเซ็นเตอร์ส่วนใหญ่

  • เสียงแรกคือเจ้าหน้าที่ สายเรียกเข้าเปิดด้วยคำทักทายที่เจ้าหน้าที่มีสคริปต์ให้พูด ผู้พูด 0 คือเจ้าหน้าที่เมื่อช่วงพูดแรกตรงกับคำทักทาย
  • คำทักทายบอกบทบาท เมื่อช่วงพูดแรกไม่ตรง ค้นหาวลีตามสคริปต์ในสามช่วงพูดแรก และถือผู้พูดนั้นเป็นเจ้าหน้าที่
  • สองช่องเสียงทำให้แน่นอน ระบบโทรศัพท์ที่บันทึกเจ้าหน้าที่กับลูกค้าแยกช่องส่งแต่ละช่องเป็นไฟล์ของตัวเองได้ บทบาทจึงคือไฟล์ และการแยกผู้พูดภายในแต่ละไฟล์จับการโอนสายหรือหัวหน้าที่เข้ามาร่วม

สายที่มีเสียงที่สาม เช่นหัวหน้าหรือการโอนสาย มาเป็นผู้พูด 2 กฎที่คาดหวังผู้พูดสองคนควรถือเสียงที่สามเป็นสัญญาณให้ตรวจ เพราะบทสนทนาเปลี่ยนรูปร่างไปแล้ว

การตรวจ QA บนทุกสาย#

เมื่อกำหนดบทบาทแล้ว การตรวจสคริปต์คือชุดการจับคู่ข้อความบนช่วงพูดของเจ้าหน้าที่ คำทักทาย การยืนยันตัวตน การแจ้งพักสาย และประโยคปิดสาย แต่ละอย่างกลายเป็นวลีที่ช่วงพูดของเจ้าหน้าที่ต้องมี พร้อมวินาทีที่พูด สายที่ขาดข้อใดคือสายที่ผู้ตรวจฟัง

การแจ้งเตือนคำสำคัญรันบนช่วงพูดของลูกค้า คำว่าคืนเงิน ยกเลิก ร้องเรียน และชื่อคู่แข่ง ยกสายขึ้นมาภายในไม่กี่นาทีหลังวางสาย คลังคำศัพท์ชื่อสินค้าและแพ็กเกจได้สูงสุด 50 คำ ทำให้สะกดเหมือนกันทั้งพันสาย ซึ่งเป็นสิ่งที่การจับคู่ข้อความต้องการ

สัดส่วนการพูดคือตัวเลขที่สามที่ช่วงพูดให้ฟรี รวมวินาทีของช่วงพูดแต่ละคน เจ้าหน้าที่ที่พูดแปดสิบเปอร์เซ็นต์ของสายร้องเรียนคือเรื่องที่ต้องโค้ช และตัวเลขนี้มาจากอาร์เรย์ segments โดยไม่ต้องฟังเลย

หมายเลขหยุดตรงไหน#

ไฟล์ที่แยกผู้พูดถูกอ่านทั้งไฟล์ก่อนคำตอบจะกลับมา และสายยาวใช้เวลานานกว่าสายสั้น เผื่อเวลาให้คำตอบใช้หลายสิบวินาทีสำหรับไฟล์ยาว และส่งสายพร้อมกันหลายสาย จำนวนคำขอพร้อมกันที่แพ็กเกจอนุญาตคือจำนวนสายที่อยู่ระหว่างประมวลผลพร้อมกัน

การอ่านรวดเดียวนี้เองคือจุดที่ความยาวหยุด คำขอที่แยกผู้พูดรับสายที่สั้นกว่า 9 นาที ซึ่งต่ำกว่า 60 นาทีที่บทถอดธรรมดารับได้มาก สายที่ยาวกว่านั้นตอบ 400 diarization_audio_too_long ก่อนตัดเครดิต ตัดสายตรงช่วงเงียบ แล้วส่งแต่ละส่วนพร้อมกัน หมายเลขผู้พูดเริ่มใหม่ในแต่ละส่วน จึงจับคู่บทบาทต่อส่วนด้วยกฎเดิม การแยกผู้พูดไม่เปลี่ยนราคา ไฟล์คิดตามความยาว และช่วงพูดมาพร้อมกัน

ขั้นต่อไป#