API Audio
Teks-ke-ucapan (TTS) dan kueri daftar suara
API Audio menyediakan kemampuan teks-ke-ucapan (TTS) dan daftar suara.
Endpoint
| Method | Path | Deskripsi |
|---|---|---|
| GET | /v1/audio/voice/{model} | Daftar suara untuk model TTS |
| POST | /v1/audio/speech | Teks-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
| Field | Tipe | Deskripsi |
|---|---|---|
success | boolean | Apakah panggilan berhasil |
object | string | Selalu list |
data | array | Daftar suara |
data[].name | string | Nama tampilan suara |
data[].code | string | Kode 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"
}
| Field | Tipe | Deskripsi |
|---|---|---|
success | boolean | Selalu false |
message | string | Alasan kegagalan |
Catatan:
- Channel voices:
namesama dengancode; berasal dari konfigurasi channel - Platform voice library:
nameadalah nama tampilan;codeadalahvoice_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
| Field | Tipe | Wajib | Deskripsi |
|---|---|---|---|
model | string | Ya | Model TTS, mis. tts-1, cosyvoice-v3-flash |
input | string | Ya | Teks yang disintesis |
voice | string | Ya | Kode suara (lihat daftar suara di atas) |
response_format | string | Tidak | Format output: mp3 (default), opus, aac, flac, wav, pcm |
speed | number | Tidak | Kecepatan 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
| Item | Deskripsi |
|---|---|
| HTTP status | 200 |
| Content-Type | Ditentukan oleh response_format; lihat tabel di bawah |
| Body | Aliran biner audio, bukan JSON |
Pemetaan response_format dan Content-Type
response_format | Content-Type |
|---|---|
mp3 (default) | audio/mpeg |
opus | audio/opus |
aac | audio/aac |
flac | audio/flac |
wav | audio/wav |
pcm | audio/pcm |
Respons kegagalan
HTTP 400. Format: Error standar.
{
"error": {
"message": "voice is required",
"type": "invalid_request_error",
"code": "invalid_request"
}
}
