LiveKit Text to Speech ภาษาไทยสำหรับ Voice Agent
Voice Agent บน LiveKit ที่คุยกับผู้ใช้หลายภาษา ต้องมีเสียงที่อ่านประโยคซึ่งพูดปนกันได้ ชี้ OpenAI plugin ของ LiveKit มาที่ Paxa ด้วย base URL และคีย์ API แล้ว agent จะพูดภาษาไทย อังกฤษ และจีนกลางด้วยเสียงใดก็ได้ของ Paxa TTS Flash v2 ส่วนปลั๊กอินตัวเดียวกันก็เพิ่มการถอดเสียงของ Paxa ได้ด้วย
ปลั๊กอินเดียว ชี้มาที่ Paxa#
ออบเจกต์เสียงพูดและถอดเสียงสร้างจาก OpenAI plugin ของ LiveKit โดยตั้ง base URL คีย์ โมเดล และเสียงของ Paxa คำอธิบายอาร์กิวเมนต์แต่ละตัวนำมาจากคู่มือตั้งค่า
import os from livekit.plugins import openai paxa_tts = openai.TTS( base_url="https://api.paxalabs.com/v1", api_key=os.environ["PAXA_API_KEY"], model="paxa-tts-flash-v2", voice="khanomkrok", response_format="pcm", )
from livekit.agents import AgentSession, inference paxa_stt = openai.STT( base_url="https://api.paxalabs.com/v1", api_key=os.environ["PAXA_API_KEY"], model="paxa-stt-lite-v1-preview", language="th", ) session = AgentSession( stt=paxa_stt, # Any LLM LiveKit Agents supports. llm=inference.LLM("openai/gpt-4.1-mini"), tts=paxa_tts, vad=inference.VAD(), )
ให้ agent มีเสียงพูด
- ตั้ง
modelเป็นpaxa-tts-flash-v2หรือใช้ชื่อโมเดลของ OpenAI ต่อได้ ซึ่งทำงานบนโมเดลนี้ ปลั๊กอินจะขอผลลัพธ์แบบ event stream กับชื่อโมเดลส่วนใหญ่ และ Paxa ตอบกลับเป็นเสียงดิบ ซึ่งปลั๊กอินเล่นได้ทันทีที่ได้รับ - ตั้ง
voiceเป็นรหัสเสียงใดก็ได้จาก GET /v1/voices ที่มีโมเดลเป็นpaxa-tts-flash-v2ชื่อของเสียง OpenAI ก็ใช้ได้ (ชื่อของเสียงที่ใช้ได้) - ใช้
response_format="pcm"ตามตัวอย่าง ผลลัพธ์เป็นเสียงโมโน 16 บิตที่ 24 kHz ซึ่งเป็นอัตราที่ปลั๊กอินเล่นได้ทันทีโดยไม่ต้องถอดรหัส - ตั้ง
speedระหว่าง 0.5 ถึง 1.5 ค่าที่อยู่นอกช่วงนี้ได้คำตอบ 400
เพิ่มการถอดเสียง
- ปลั๊กอินถอดเสียงทีละเทิร์นที่พูดจบแล้วเป็นไฟล์เดียว session จึงต้องมี VAD ไว้หาจุดสิ้นสุดของแต่ละเทิร์น
languageใช้ส่งคำใบ้ภาษา เช่นthหากตั้งdetect_language=Trueปลั๊กอินจะไม่ส่งคำใบ้ และให้โมเดลตรวจภาษาเอง- Paxa STT Lite เป็นพรีวิวงานวิจัย
จากคีย์ถึง agent ที่พูดได้#
agent ยังใช้ LLM และโค้ด session เดิม Paxa รับหน้าที่ฝั่งเสียงพูด และฝั่งถอดเสียงเมื่อคุณเพิ่มเข้าไป
ติดตั้งปลั๊กอิน
ติดตั้ง livekit-agents พร้อม extra ชื่อ openai แล้วตั้ง PAXA_API_KEY เป็นคีย์จากแดชบอร์ด
ชี้ TTS มาที่ Paxa
สร้าง openai.TTS โดยตั้ง base_url เป็น https://api.paxalabs.com/v1 ตั้ง model เป็น paxa-tts-flash-v2 ใส่รหัสเสียงของ Paxa และตั้ง response_format เป็น pcm ซึ่งปลั๊กอินเล่นได้ทันทีโดยไม่ต้องถอดรหัส
เพิ่มการถอดเสียง
สร้าง openai.STT ด้วย base URL เดียวกันและโมเดล paxa-stt-lite-v1-preview แล้วส่งทั้งสองตัวให้ AgentSession พร้อม VAD ที่ใช้หาจุดจบของแต่ละเทิร์น
Paxa TTS Flash v2 ราคา $10 ต่อ 1 ล้านตัวอักษร Paxa STT Lite ราคา $0.50 ต่อชั่วโมงเสียง คิดตามความยาวจริงละเอียดถึงมิลลิวินาที
คำถามที่พบบ่อย#
LiveKit Agents คืออะไร
LiveKit อธิบายว่า Agents เป็นเฟรมเวิร์กแบบเรียลไทม์สำหรับ Agent ด้านเสียง วิดีโอ และ Physical AI เสียงใน Voice Agent จะผ่านขั้นตอนถอดเสียง LLM และแปลงข้อความเป็นเสียงตามลำดับ Paxa ให้บริการได้ทั้งขั้นตอนถอดเสียงและขั้นตอนแปลงข้อความเป็นเสียง
agent ใช้เสียงไหนได้บ้าง
agent ใช้ได้ทุกเสียงของ Paxa TTS Flash v2 ทั้ง 50 เสียง และทุกเสียงพูดได้ทั้งภาษาไทย อังกฤษ และจีนกลาง GET /v1/voices แสดงรหัสของทุกเสียง และฟังตัวอย่างได้ที่คลังเสียง ชื่อของเสียง OpenAI ก็ใช้ได้ และจะจับคู่กับเสียงของ Paxa
คำตอบภาษาไทยที่ยาวเริ่มพูดเมื่อไร
agent พูดคำตอบทีละประโยค ข้อความภาษาไทยที่ไม่มีเครื่องหมายวรรคตอนจะถูกนับเป็นประโยคเดียว คำตอบภาษาไทยที่ยาวจึงเริ่มพูดได้ก็ต่อเมื่อ LLM เขียนจบแล้ว
การถอดเสียงใน LiveKit ทำงานอย่างไร
openai.STT ส่งแต่ละเทิร์นที่พูดจบแล้วไปให้ Paxa เป็นไฟล์เดียว และ VAD ของ session เป็นตัวหาจุดจบของแต่ละเทิร์น ส่ง language เป็นคำใบ้ภาษา เช่น th หรือตั้ง detect_language เป็น True เพื่อให้โมเดลตรวจภาษาเอง Paxa STT Lite เป็นพรีวิวงานวิจัย
เริ่มต้นด้วยเครดิตฟรี
เข้าสู่ระบบด้วย Google, GitHub หรือ Hugging Face แล้วใช้เครดิตฟรี 100 เครดิตกับข้อความของคุณเอง
ผลิตภัณฑ์
ตัวอย่างการใช้งาน