tài liệu
API

Audio

Markdown

Chuyển văn bản thành giọng nói (TTS) và nhận dạng giọng nói (STT) theo định dạng OpenAI Audio.

Hướng dẫn đầy đủ
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# Tổng hợp giọng nói
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": "Xin chào! Đây là ví dụ chuyển văn bản thành giọng nói.", "voice": "longanlingxin"}' \
  --output speech.mp3

# Nhận dạng
curl https://api.ailoot.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -F model=qwen-asr \
  -F file=@meeting.wav
200 OK · nhận dạng giọng nói
{
  "text": "Chào các đồng nghiệp. Chúng ta hãy bắt đầu với kết quả trong tuần…"
}

Xác thực

  • Authorizationheaderbắt buộc

    Khóa có dạng Bearer sk-…. Cũng có thể dùng các header x-api-key hoặc x-goog-api-key.

Chuyển văn bản thành giọng nói: phần thân yêu cầu

  • modelstringbắt buộc

    Mô hình chuyển văn bản thành giọng nói: 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.

  • inputstringbắt buộc

    Văn bản cần chuyển thành giọng nói. Với mô hình MiniMax — dưới 10 000 ký tự; với qwen-audio-3.0-tts-plus — tối đa 600.

  • voicestring

    Giọng nói. Bắt buộc đối với các mô hình MiniMax (speech-2.8-hd và các mô hình khác thuộc dòng speech-…): mã định danh giọng nói MiniMax (chữ cái Latinh, chữ số, _ và -, tối đa 128 ký tự). Với qwen-audio-3.0-tts-plus mặc định là longanlingxin, còn với các mô hình Gemini TTS — Kore.

  • response_formatstringkhông bắt buộc

    MiniMax — chỉ mp3; qwen-audio-3.0-tts-plus — mp3, wav hoặc pcm; Gemini TTS — wav hoặc json (liên kết đến tệp).

Phản hồi là tệp âm thanh (với MiniMax — audio/mpeg). Tính phí theo số ký tự văn bản hoặc số token, như ghi trong danh mục.

Nhận dạng giọng nói

POSThttps://api.ailoot.ai/v1/audio/transcriptions
  • filefilebắt buộc

    Tệp âm thanh WAV trong multipart/form-data. qwen-asr, qwen-asr-latest và qwen-audio-3.0-asr-flash: tệp PCM WAV hoàn chỉnh, không nén, dài tối đa 5 phút; kích thước tệp khoảng tối đa 7,5 MB (ở dạng base64 — tối đa 10 MB). asr-1.0: PCM WAV dài tối đa 500 giây và kích thước tối đa 50 MB. gemini-3.5-transcribe: WAV có kích thước tối đa 64 MB.

  • modelstringbắt buộc

    Mô hình nhận dạng giọng nói: gemini-3.5-transcribe, qwen-audio-3.0-asr-flash, asr-1.0.

  • response_formatstringkhông bắt buộc

    Chỉ json (hoặc không truyền trường này).

Trường language không được các mô hình này sử dụng. Phản hồi: {"text": "…"}. Tính phí theo thời lượng bản ghi (giây, phút hoặc giờ — mỗi mô hình có đơn vị riêng).

Giọng nói thời gian thực

Với qwen-audio-3.0-realtime-plus hãy mở WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus với header Authorization: Bearer <API_KEY>. Truyền khóa từ phía máy chủ: khóa trong query string không được chấp nhận. Đợi session.created với mô hình đã chọn, sau đó gửi cấu hình, tin nhắn và response.create. Dưới đây là ba JSON text frame liên tiếp để nhận phản hồi văn bản trong phiên âm thanh:

{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Hãy trả lời ngắn gọn."}}

Đọc các sự kiện phản hồi cho đến response.done và usage cuối cùng của phản hồi đó; lỗi được gửi qua sự kiện error. Tính phí theo token văn bản và âm thanh của từng phản hồi đã được xác nhận. Đầu vào âm thanh: sự kiện input_audio_buffer.append với audio — dữ liệu base64 PCM16 mono 16 kHz; sau đó input_audio_buffer.commit và response.create. Đầu ra âm thanh là PCM16 mono 24 kHz. Phiên này không chấp nhận binary frame.

Các sự kiện phía máy khách được hỗ trợ: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. conversation items chỉ hỗ trợ tin nhắn/văn bản; function tools, web search và voiceprint không được hỗ trợ. Giới hạn phiên: 600 giây, 20 phản hồi, 20 history turns, 2000 byte instructions và 8000 byte văn bản phía máy khách. Idle timeout phụ thuộc cấu hình (mặc định 60 giây).

Còn câu hỏi? Hãy gửi Request ID và mô tả — chúng tôi sẽ giúp tìm hiểu.Liên hệ hỗ trợ