docs
API

Audio

Markdown

การแปลงข้อความเป็นเสียง (TTS) และการรู้จำเสียงพูด (STT) ในรูปแบบ OpenAI Audio

คู่มือฉบับเต็ม
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# การสังเคราะห์เสียงพูด
curl https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen-audio-3.0-tts-plus", "input": "สวัสดี! นี่คือตัวอย่างการสังเคราะห์เสียงพูด", "voice": "longanlingxin"}' \
  --output speech.mp3

# การรู้จำ
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · การรู้จำเสียงพูด
{
  "text": "สวัสดีเพื่อนร่วมงานทุกคน เริ่มจากสรุปผลของสัปดาห์นี้กัน…"
}

การยืนยันสิทธิ์

  • Authorizationheaderจำเป็น

    คีย์ในรูปแบบ Bearer sk-…. ใช้เฮดเดอร์ต่อไปนี้ได้เช่นกัน x-api-key หรือ x-goog-api-key.

การแปลงข้อความเป็นเสียง: เนื้อหาคำขอ

  • modelstringจำเป็น

    โมเดลแปลงข้อความเป็นเสียง: gemini-3.8-flash-tts, qwen-audio-3.0-tts-plus, speech-2.8-turbo, gemini-3.8-flash-lite-tts, speech-2.8-hd, gemini-3.1-flash-tts-preview, speech-2.6-turbo, speech-2.6-hd, speech-02-turbo, speech-02-hd.

  • inputstringจำเป็น

    ข้อความที่ต้องการแปลงเป็นเสียง สำหรับโมเดล MiniMax ต้องน้อยกว่า 10 000 อักขระ ส่วน qwen-audio-3.0-tts-plus — สูงสุด 600 อักขระ

  • voicestring

    เสียง จำเป็นสำหรับโมเดล MiniMax (speech-2.8-hd และโมเดลอื่น ๆ speech-…): รหัสเสียง MiniMax (ตัวอักษรละติน ตัวเลข _ และ -, สูงสุด 128 อักขระ) สำหรับ qwen-audio-3.0-tts-plus ค่าเริ่มต้นคือ longanlingxin, ส่วนโมเดล Gemini TTS ใช้ Kore.

  • response_formatstringไม่จำเป็น

    MiniMax — รองรับเฉพาะ mp3; qwen-audio-3.0-tts-plus — mp3, wav หรือ pcm; Gemini TTS — wav หรือ json (ลิงก์ไปยังไฟล์)

คำตอบเป็นไฟล์เสียง (สำหรับ MiniMax — audio/mpeg). คิดค่าบริการตามจำนวนอักขระข้อความหรือโทเค็น ตามที่ระบุในแค็ตตาล็อก

การรู้จำเสียงพูด

POSThttps://api.ailoot.ai/v1/audio/transcriptions
  • filefileจำเป็น

    ไฟล์เสียง WAV ใน multipart/form-data. qwen-asr, qwen-asr-latest และ qwen-audio-3.0-asr-flash: PCM WAV แบบไม่บีบอัดทั้งไฟล์ ความยาวไม่เกิน 5 นาที ขนาดประมาณไม่เกิน 7,5 MB (เมื่อเป็น base64 — ไม่เกิน 10 MB) asr-1.0: PCM WAV ความยาวไม่เกิน 500 วินาที และขนาดไม่เกิน 50 MB gemini-3.5-transcribe: WAV ขนาดไม่เกิน 64 MB

  • modelstringจำเป็น

    โมเดลรู้จำเสียงพูด: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringไม่จำเป็น

    เฉพาะ json (หรือไม่ระบุ)

ฟิลด์ language ไม่ถูกใช้โดยโมเดลเหล่านี้ คำตอบ: {"text": "…"}. คิดค่าบริการตามความยาวของเสียงที่บันทึก (วินาที นาที หรือชั่วโมง — แต่ละโมเดลใช้หน่วยต่างกัน)

เสียงแบบเรียลไทม์

สำหรับ qwen-audio-3.0-realtime-plus เปิด WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus พร้อมเฮดเดอร์ Authorization: Bearer <API_KEY>. ส่งคีย์จากฝั่งเซิร์ฟเวอร์: ไม่รับคีย์ใน query string รอ session.created ที่ระบุโมเดลที่เลือก จากนั้นส่งการตั้งค่า ข้อความ และ response.create. ด้านล่างคือ JSON text frames สามเฟรมที่ส่งตามลำดับ เพื่อรับคำตอบแบบข้อความในเซสชันเสียง:

{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"ตอบให้กระชับ"}}

อ่านอีเวนต์คำตอบจนถึง response.done และ usage สรุปของคำตอบ ข้อผิดพลาดจะส่งมาในอีเวนต์ error. คิดค่าบริการตามโทเค็นข้อความและเสียงของคำตอบแต่ละรายการที่ยืนยันแล้ว เสียงขาเข้า: อีเวนต์ input_audio_buffer.append พร้อม audio — base64 PCM16 mono 16 kHz; จากนั้น input_audio_buffer.commit และ response.create. เสียงขาออกเป็น PCM16 mono 24 kHz เซสชันนี้ไม่รับ Binary frames

อีเวนต์ฝั่งไคลเอนต์ที่รองรับ: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. conversation items — รองรับเฉพาะข้อความ/ข้อความตัวอักษร ไม่รองรับ function tools, web search และ voiceprint ขีดจำกัดเซสชัน: 600 วินาที, 20 คำตอบ, 20 history turns, instructions ขนาด 2000 ไบต์ และข้อความฝั่งไคลเอนต์ขนาด 8000 ไบต์ Idle timeout ขึ้นอยู่กับการกำหนดค่า (ค่าเริ่มต้น 60 วินาที)

ยังมีคำถามอยู่ใช่ไหม ส่ง Request ID และรายละเอียดมาให้เรา เราจะช่วยตรวจ⁠สอบติดต่อฝ่ายสนับสนุน