API Audio

Teks-ke-ucapan (TTS) dan kueri daftar suara

API Audio menyediakan kemampuan teks-ke-ucapan (TTS) dan daftar suara.

Endpoint

MethodPathDeskripsi
GET/v1/audio/voice/{model}Daftar suara untuk model TTS
POST/v1/audio/speechTeks-ke-ucapan (TTS)

Urutan panggilan yang disarankan: Pertama panggil endpoint daftar suara untuk mendapatkan data[].code, lalu kirim sebagai field voice dalam permintaan TTS.


GET /v1/audio/voice/{model}

Daftar suara yang tersedia untuk model TTS.

Auth: Bearer Token

Parameter path: model — nama model TTS, mis. tts-1, cosyvoice-v3-flash

Permintaan: Tanpa body permintaan

Contoh permintaan (curl)

curl http://www.mangoto.ai/v1/audio/voice/cosyvoice-v3-flash \
  -H "Authorization: Bearer sk-xxx"

Body respons

HTTP 200

{
  "success": true,
  "object": "list",
  "data": [
    {
      "name": "龙小淳",
      "code": "longxiaochun"
    },
    {
      "name": "Cherry",
      "code": "Cherry"
    }
  ]
}

Field respons

FieldTipeDeskripsi
successbooleanApakah panggilan berhasil
objectstringSelalu list
dataarrayDaftar suara
data[].namestringNama tampilan suara
data[].codestringKode suara; kirim sebagai voice dalam permintaan TTS

Saat tidak ada suara yang tersedia:

{
  "success": true,
  "object": "list",
  "data": []
}

Respons kegagalan

HTTP 400

{
  "success": false,
  "message": "model is required"
}
FieldTipeDeskripsi
successbooleanSelalu false
messagestringAlasan kegagalan

Catatan:

  • Channel voices: name sama dengan code; berasal dari konfigurasi channel
  • Platform voice library: name adalah nama tampilan; code adalah voice_key. Jika model mendukung suara pengguna privat, suara tersebut juga disertakan

POST /v1/audio/speech

Teks-ke-ucapan (TTS).

Auth: Bearer Token

Content-Type: application/json

Body permintaan

{
  "model": "tts-1",
  "input": "Hello, welcome to YunSell AI text-to-speech service.",
  "voice": "alloy",
  "response_format": "mp3",
  "speed": 1.0
}

Field permintaan

FieldTipeWajibDeskripsi
modelstringYaModel TTS, mis. tts-1, cosyvoice-v3-flash
inputstringYaTeks yang disintesis
voicestringYaKode suara (lihat daftar suara di atas)
response_formatstringTidakFormat output: mp3 (default), opus, aac, flac, wav, pcm
speednumberTidakKecepatan ucapan, 0.25–4.0; default 1.0

Contoh model CosyVoice:

{
  "model": "cosyvoice-v3-flash",
  "input": "你好,欢迎使用语音合成服务。",
  "voice": "longxiaochun",
  "response_format": "mp3",
  "speed": 1.0
}

Contoh permintaan (curl)

curl http://www.mangoto.ai/v1/audio/speech \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "tts-1",
    "input": "Hello, welcome to YunSell AI text-to-speech service.",
    "voice": "alloy",
    "response_format": "mp3",
    "speed": 1.0
  }' \
  -o speech.mp3

Model CosyVoice:

curl http://www.mangoto.ai/v1/audio/speech \
  -H "Authorization: Bearer sk-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cosyvoice-v3-flash",
    "input": "你好,欢迎使用语音合成服务。",
    "voice": "longxiaochun",
    "response_format": "mp3",
    "speed": 1.0
  }' \
  -o speech.mp3

Body respons

HTTP 200

  • Content-Type: audio/mpeg (mp3) atau MIME type untuk format yang dipilih
  • Body: Aliran biner audio (bukan JSON)

Contoh header respons:

HTTP/1.1 200 OK
Content-Type: audio/mpeg
Content-Length: 45632

Catatan respons

ItemDeskripsi
HTTP status200
Content-TypeDitentukan oleh response_format; lihat tabel di bawah
BodyAliran biner audio, bukan JSON

Pemetaan response_format dan Content-Type

response_formatContent-Type
mp3 (default)audio/mpeg
opusaudio/opus
aacaudio/aac
flacaudio/flac
wavaudio/wav
pcmaudio/pcm

Respons kegagalan

HTTP 400. Format: Error standar.

{
  "error": {
    "message": "voice is required",
    "type": "invalid_request_error",
    "code": "invalid_request"
  }
}