Paxa Labs

วอยซ์เอเจนต์ภาษาไทย

เพิ่มส่วนพูดให้วอยซ์เอเจนต์ภาษาไทย สตรีมเสียง MP3 ทีละประโยค ส่งซ้ำได้อย่างปลอดภัยด้วย Idempotency-Key และอ่านคำตอบที่ไทยปนอังกฤษด้วยเสียงเดียว

ไอเดียให้ลองเล่น

ยืนยันการจอง

รับทราบค่ะ จองโต๊ะสำหรับ 4 ท่าน วันเสาร์เวลาหนึ่งทุ่ม ใช่ไหมคะ

อ่านยอดคงเหลือ

ยอดคงเหลือในบัญชีของคุณคือ 8,432 บาทค่ะ ต้องการทำรายการอื่นเพิ่มไหมคะ

เลขพัสดุแบบไทยปนอังกฤษ

ออเดอร์ของคุณกำลังจัดส่งโดย Flash Express หมายเลขพัสดุ TH123456789 ค่ะ

คำรับคำสั้น ๆ ระหว่างรอ

ได้เลยค่ะ เดี๋ยวช่วยตรวจสอบให้นะคะ รอสักครู่ค่ะ

ทุกการ์ดเล่นคลิปจริงที่สร้างจากสคริปต์นั้น ๆ ด้วยเสียงนมเย็น เปิดในหน้าเสียงพูดเพื่อให้พูดข้อความของคุณเองได้

วอยซ์เอเจนต์ใช้ API อย่างไร

วอยซ์เอเจนต์คือไปป์ไลน์สามขั้นตอน ระบบรู้จำเสียงพูดถอดเสียงผู้ใช้เป็นข้อความ โมเดลภาษาเขียนคำตอบ แล้ว Text-to-Speech อ่านออกเสียง ในประเทศไทยบทสนทนามักเริ่มต้นในแอปแชต LINE มีผู้ใช้งานต่อเดือน 56 ล้านคน คิดเป็นร้อยละ 78.2 ของประชากร ผู้ช่วยที่รับสายทางโทรศัพท์จึงคุยกับลูกค้ากลุ่มเดียวกัน ฝั่งองค์กรยังอยู่ในช่วงเริ่มต้น ผลสำรวจองค์กรไทย 580 แห่งพบว่าร้อยละ 17.8 ใช้ AI แล้ว และร้อยละ 73.3 วางแผนจะใช้ งานวิเคราะห์ latency budget ของอุตสาหกรรมให้เวลาขั้น TTS ราว 100 ถึง 200 มิลลิวินาทีจนถึงเสียงแรก ภายใต้เป้าหมายรวมต่ำกว่าหนึ่งวินาที ขาฟังและขาพูดอยู่บน API เดียวกันนี้ทั้งคู่ Paxa STT Lite Realtime ถอดเสียงผู้โทรผ่าน WebSocket เดียวและบอกจุดจบของแต่ละรอบพูด ส่วน Paxa TTS Flash v2 อ่านคำตอบออกเสียง รูปแบบการเชื่อมต่อที่ใช้ได้จริงจึงเป็นการสตรีม ส่งประโยคที่โมเดลภาษาเขียนเสร็จมาพร้อม stream: true แล้วส่งต่อเสียง MP3 ทีละชิ้นไปยังสายโทรศัพท์หรือเว็บไคลเอนต์ทันทีที่มาถึง วอยซ์เอเจนต์ภาษาไทยมีผู้พัฒนาจริงในประเทศ ทั้งสตาร์ตอัปที่ขายระบบและโมเดลเสียงโอเพนซอร์สจากกลุ่มวิจัย ส่วนโจทย์ยากยังเป็นตัวภาษาเอง ทั้งวรรณยุกต์ ข้อความที่เขียนติดกันโดยไม่มีช่องว่างระหว่างคำ และคำตอบที่ไทยปนอังกฤษอยู่ในประโยคเดียว

ที่มา:DataReportal (2026)(เปิดในแท็บใหม่)ETDA (2024)(เปิดในแท็บใหม่)

  1. สตรีมทีละประโยค

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

  2. ทำให้เส้นทางส่งซ้ำปลอดภัย

    แนบ Idempotency-Key กับทุกคำขอ หากการเชื่อมต่อหลุดแล้วระบบส่งซ้ำ คำขอซ้ำจะได้ผลลัพธ์เดิมโดยไม่ถูกคิดเครดิตอีกครั้ง และคำขอซ้ำที่วิ่งพร้อมกันด้วยคีย์เดียวกันจะถูกปฏิเสธแทนการคิดเงินสองครั้ง

  3. ล้มเหลวได้โดยไม่เสียเครดิต

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

หนึ่งสายจากมุมของคนโทร

0:00

ข้อความต้อนรับเริ่มเล่น

คนโทรรู้อยู่แล้วว่าต้องการอะไร เขารู้ตั้งแต่ก่อนกดโทรด้วยซ้ำ และข้อความต้อนรับคือส่วนของสายที่เขากำลังรอให้ผ่านไป

0:04

เขาพูดแทรกขึ้นมา

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

0:05

เสียงหยุด

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

0:31

จบเรื่อง หรือส่งต่อ

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

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

เวลาของคำตอบหนึ่งครั้งหายไปไหน

30-80 ms

เครือข่าย

การเดินทางของข้อมูลระหว่างผู้โทร ตัวเอเจนต์ และบริการต่าง ๆ ที่เอเจนต์เรียกใช้

150-300 ms

จังหวะสนทนา

การตรวจจับว่าผู้โทรพูดจบแล้ว ก่อนที่คำตอบจะเริ่มทำงาน

150-400 ms

โทเคนแรกของ LLM

คำตอบเริ่มทยอยมาเป็นข้อความทีละประโยค ไม่ได้มาพร้อมกันทั้งก้อน

100-200 ms

เสียงแรกของ TTS

เสียงชิ้นแรกออกจากขั้นสังเคราะห์เสียงและเริ่มเล่นให้ผู้โทรฟัง

ตัวเลขชุดนี้มาจาก latency budget ของอุตสาหกรรมที่เผยแพร่สาธารณะ (The Prompt Bench, Hamming, Telnyx) และไม่ได้วัดจาก API นี้ ยกมาเพื่ออธิบายว่าทำไมรูปแบบการเชื่อมต่อด้านล่างจึงเป็นการสตรีมแทนการรอไฟล์ทั้งก้อน

คำตอบหนึ่งครั้งบนสาย

stream
llm   → "สวัสดีค่ะ มีอะไรให้ช่วยไหมคะ"
agent → POST /v1/tts {"stream": true, "voice": "nomyen"}
tts   ← เสียงชิ้นที่ 1  (เริ่มเล่นให้ผู้โทรฟังแล้ว)
tts   ← เสียงชิ้นที่ 2 … ชิ้นสุดท้าย
agent → ประโยคถัดไป รูปแบบเดิม

จำนวนคำตอบกับค่าใช้จ่าย

จำนวนคำตอบกับค่าใช้จ่าย
คำตอบตัวอักษรเครดิตค่าใช้จ่าย
10020,000200$0.20
10,0002,000,00020,000$20.00
คำตอบเสียง 1,000 ครั้งประมาณ $2.00

คำนวณที่ประมาณ 200 ตัวอักษรต่อคำตอบ ซึ่งยาวราวหนึ่งถึงสองประโยคพูด ที่อัตราคงที่ $10 ต่อหนึ่งล้านตัวอักษร คำขอแบบสตรีมและแบบรับทั้งไฟล์คิดราคาเท่ากัน และคำขอที่ล้มเหลวหลังคิดเครดิตได้รับคืน

สำหรับนักพัฒนา

ตัวอย่างทั้ง curl, TypeScript และ Python ส่งประโยคเดียวพร้อม stream: true แล้วรับเสียง MP3 ไปใช้ทีละชิ้นทันทีที่มาถึง ซึ่งเป็นลูปที่เอเจนต์ทำซ้ำต่อหนึ่งประโยค

เอกสารอ้างอิง API ฉบับเต็ม
curl -N -X POST https://api.paxalabs.com/v1/tts \
  -H "Authorization: Bearer $PAXA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "สวัสดีครับ ยินดีต้อนรับสู่ Paxa Labs", "voice": "khanomkrok", "model": "paxa-tts-flash-v2", "stream": true}' \
  --output speech.mp3

ฟังเสียงจริง

เสียงบางส่วนจากทั้งหมด 50 เสียง สร้างจาก API ด้วยรหัสเสียงที่เปิดให้ใช้งานจริง ฟังครบทุกเสียงได้ที่หน้า Text-to-Speech

สร้างเพื่อบทสนทนาภาษาไทย

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

คำถามที่พบบ่อย

ถ้าคนโทรพูดแทรกขึ้นมาระหว่างที่เอเจนต์กำลังพูด จะเป็นอย่างไร

เสียงหยุดกลางประโยค และคำตอบส่วนที่เหลือถูกทิ้งไป นั่นคือคำสั่งยกเลิกบนซ็อกเก็ตสด และการเชื่อมต่อเดิมรับตาถัดไปต่อได้เลย ไม่มีอะไรในสายนั้นต้องเริ่มใหม่

วอยซ์เอเจนต์พูดคำตอบที่ไทยปนอังกฤษได้ไหม

ได้ ข้อความไทยปนอังกฤษอ่านในคำขอเดียวด้วยเสียงเดียว ซึ่งตรงกับวิธีที่ผู้ใช้ไทยคุยกับผู้ช่วยเสียงจริง และตรงกับวิธีที่โมเดลภาษาเขียนตอบกลับ

ถ้าคำขอแบบสตรีมล้มเหลวกลางทางจะเกิดอะไรขึ้น

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

API เดียวกันนี้ถอดเสียงผู้โทรได้ด้วยไหม

ได้ Paxa STT Lite Realtime ฟังผ่าน WebSocket ที่ /v1/stt/live ตัดสินจุดจบของแต่ละรอบพูดเอง และส่งบทถอดที่จบแล้วหนึ่งชุดต่อหนึ่งรอบพูด คิด 12.5 เครดิตต่อนาทีของเสียงที่รับเข้ามา ทั้งสองขาของวงจรหักจากยอดเครดิตเดียวกันและลงในบันทึกคำขอเดียวกัน

ระบบเดิมเรียก speech API ของ OpenAI อยู่แล้ว ต้องเขียนใหม่ไหม

ไม่ต้อง POST /v1/audio/speech เป็น endpoint ที่เข้ากันได้กับ OpenAI และสตรีมโดยค่าเริ่มต้น โค้ดเดิมใช้ต่อได้โดยเปลี่ยนแค่ base URL กับคีย์

เริ่มต้นด้วยเครดิตฟรี

เข้าสู่ระบบด้วย Google, GitHub หรือ Hugging Face แล้วใช้เครดิตฟรี 100 เครดิตกับข้อความของคุณเอง

บทความที่เกี่ยวข้อง