Endpoint
Suara (TTS)
POST /audio/speech mengubah teks menjadi byte audio ucapan alami dengan format yang sama seperti OpenAI, lengkap dengan harga per karakter.
Coba di playgroundUbah teks menjadi ucapan yang terdengar alami (text-to-speech, TTS). Endpoint ini mengikuti bentuk POST /audio/speech milik OpenAI dan mengembalikan byte audio mentah, sehingga client.audio.speech.create(...) bekerja tanpa perubahan.
POST https://api14.com/api/v1/audio/speech
Request
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
model | string | ya | ID model suara, mis. openai/gpt-4o-mini-tts. |
input | string | ya | Teks yang akan diucapkan. |
voice | string | ya | Nama suara, mis. alloy, nova, verse. Suara berbeda untuk tiap model (lihat halaman model). |
response_format | string | tidak | mp3 (default), wav, opus, aac, flac, pcm jika didukung. |
speed | number | tidak | Kecepatan pemutaran, biasanya 0.25–4.0. |
instructions | string | tidak | Panduan gaya untuk model yang menerimanya ("nada tenang dan hangat"). |
Contoh
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const audio = await client.audio.speech.create({
"model": "openai/gpt-4o-mini-tts",
"input": "Hello from api14! One API for every model.",
"voice": "alloy",
"response_format": "mp3"
});
await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));
Respons
Body adalah file audio itu sendiri, dengan Content-Type yang sesuai (mis. audio/mpeg). Simpan ke disk atau stream ke pemutar:
curl https://api14.com/api/v1/audio/speech \
-H "Authorization: Bearer sk-api14-..." \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-4o-mini-tts","input":"Hello from api14!","voice":"alloy"}' \
--output hello.mp3
Error tetap dikembalikan sebagai JSON dalam format error OpenAI, jadi periksa kode status sebelum menulis file.
Harga
Suara ditagih per karakter input sesuai harga model yang tercantum, ditampilkan sebagai "$ / 1M karakter". Paragraf 1.000 karakter pada model berharga $15 / 1M karakter berbiaya $0,015.
Menampilkan daftar model suara
curl "https://api14.com/api/v1/models?category=speech"
Error
| Status | Kode | Kapan |
|---|---|---|
| 400 | model_required / invalid_json | model tidak ada atau body salah format. |
| 402 | insufficient_balance | Saldo USD Anda $0. |
| 403 | model_not_allowed / plan_required | Allowlist key atau paket tidak mencakup model ini. |
| 404 | model_not_found | ID model tidak dikenal atau dinonaktifkan. |
| 429 | rate_limited | Batas request per menit terlampaui. |
Suara atau format yang tidak didukung ditolak oleh upstream dan diteruskan. Lihat Error.