Endpointy
Mowa (TTS)
POST /audio/speech: zamień tekst na dźwięk (text-to-speech), wybierz głos i format, a w odpowiedzi odbierz surowe bajty audio.
Wypróbuj w playgroundZamień tekst na naturalnie brzmiącą mowę (text-to-speech, TTS). Endpoint ma kształt zgodny z POST /audio/speech z OpenAI i zwraca surowe bajty audio, więc client.audio.speech.create(...) działa bez zmian.
POST https://api14.com/api/v1/audio/speech
Żądanie
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
model | string | tak | Identyfikator modelu mowy, np. openai/gpt-4o-mini-tts. |
input | string | tak | Tekst do przeczytania. |
voice | string | tak | Nazwa głosu, np. alloy, nova, verse. Dostępne głosy zależą od modelu (zobacz stronę modelu). |
response_format | string | nie | mp3 (domyślnie), wav, opus, aac, flac, pcm, jeśli są obsługiwane. |
speed | number | nie | Prędkość odtwarzania, zwykle 0.25–4.0. |
instructions | string | nie | Wskazówki dotyczące stylu dla modeli, które je przyjmują ("spokojny, ciepły ton"). |
Przykład
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()));
Odpowiedź
Ciałem odpowiedzi jest sam plik audio z odpowiednim Content-Type (np. audio/mpeg). Zapisz go na dysku albo przekaż strumieniowo do odtwarzacza:
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
Błędy nadal są zwracane jako JSON w formacie błędów OpenAI, więc sprawdź kod statusu, zanim zapiszesz plik.
Cennik
Mowa jest rozliczana za znak wejściowy według ceny podanej przy modelu, wyświetlanej jako "$ / 1M znaków". Akapit liczący 1000 znaków na modelu w cenie 15 USD za 1M znaków kosztuje 0,015 USD.
Lista modeli mowy
curl "https://api14.com/api/v1/models?category=speech"
Błędy
| Status | Kod | Kiedy |
|---|---|---|
| 400 | model_required / invalid_json | Brak model lub nieprawidłowe ciało żądania. |
| 402 | insufficient_balance | Twoje saldo w USD wynosi 0 USD. |
| 403 | model_not_allowed / plan_required | Lista dozwolonych modeli klucza lub plan wyklucza model. |
| 404 | model_not_found | Nieznany lub wyłączony identyfikator modelu. |
| 429 | rate_limited | Przekroczono limit zapytań na minutę. |
Nieobsługiwane głosy lub formaty są odrzucane przez dostawcę i przekazywane dalej. Zobacz Błędy.