ใช้ Paxa กับ LiveKit Agents
ให้ voice agent บน LiveKit มีเสียงพูดภาษาไทย อังกฤษ และจีนกลาง และถอดเสียงด้วย Paxa ผ่าน OpenAI plugin ของ LiveKit
ให้ voice agent บน LiveKit มีเสียงพูดภาษาไทย อังกฤษ และจีนกลาง รวมถึงประโยคที่พูดปนกัน OpenAI plugin ของ LiveKit เชื่อมต่อกับ Paxa ได้ด้วย base URL และคีย์ API ทั้งงานแปลงข้อความเป็นเสียงและงานถอดเสียง
ติดตั้งปลั๊กอิน#
pip install "livekit-agents[openai]"
export PAXA_API_KEY=pxa_your_key_hereให้ agent มีเสียงพูด#
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",
)- ตั้ง
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
agent จะพูดคำตอบทีละประโยค ข้อความภาษาไทยที่ไม่มีเครื่องหมายวรรคตอนจะถูกนับเป็นประโยคเดียว คำตอบภาษาไทยที่ยาวจึงเริ่มพูดได้ก็ต่อเมื่อ LLM เขียนจบแล้ว
เพิ่มการถอดเสียง#
ในไฟล์เดียวกัน สร้างส่วนถอดเสียงแล้วส่งทั้งสองส่วนให้ session
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(),
)- ปลั๊กอินถอดเสียงทีละเทิร์นที่พูดจบแล้วเป็นไฟล์เดียว session จึงต้องมี VAD ไว้หาจุดสิ้นสุดของแต่ละเทิร์น
languageใช้ส่งคำใบ้ภาษา เช่นthหากตั้งdetect_language=Trueปลั๊กอินจะไม่ส่งคำใบ้ และให้โมเดลตรวจภาษาเอง- Paxa STT Lite เป็นพรีวิวงานวิจัย
ชื่ออาร์กิวเมนต์อาจต่างกันในแต่ละเวอร์ชันของ LiveKit Agents