Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Mowa (TTS)

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 playground

Zamień 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

ParametrTypWymaganyOpis
modelstringtakIdentyfikator modelu mowy, np. openai/gpt-4o-mini-tts.
inputstringtakTekst do przeczytania.
voicestringtakNazwa głosu, np. alloy, nova, verse. Dostępne głosy zależą od modelu (zobacz stronę modelu).
response_formatstringniemp3 (domyślnie), wav, opus, aac, flac, pcm, jeśli są obsługiwane.
speednumberniePrędkość odtwarzania, zwykle 0.25–4.0.
instructionsstringnieWskazó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

StatusKodKiedy
400model_required / invalid_jsonBrak model lub nieprawidłowe ciało żądania.
402insufficient_balanceTwoje saldo w USD wynosi 0 USD.
403model_not_allowed / plan_requiredLista dozwolonych modeli klucza lub plan wyklucza model.
404model_not_foundNieznany lub wyłączony identyfikator modelu.
429rate_limitedPrzekroczono limit zapytań na minutę.

Nieobsługiwane głosy lub formaty są odrzucane przez dostawcę i przekazywane dalej. Zobacz Błędy.