> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Konuşma Oluştur

> Girdi metninden ses üretir

## İstek Gövdesi

**Senkron istek zaman aşımı:** Bu chat dışı endpoint, yönlendirilen modelin tamamlanmasını bekler. Büyük girdiler, uzun sesler veya büyük batch’ler yaygın 30s istemci varsayılanlarını aşabilir; bu yüzden HTTP istemcisi zaman aşımını en az `120s` olarak ayarlayın.

Desteklenen isteğe bağlı alanlar model ailesine göre değişir. TokenLab bu alan matrisini yönlendirmeden önce doğrular: OpenAI TTS `voice`, `instructions`, `response_format`, `stream_format` ve `speed` kabul eder; MiniMax speech `voice`, `voice_id`, `response_format`, `stream_format` ve `speed` kabul eder; Gemini TTS `prompt`, `language_code`, `voice`, `response_format`, `stream_format`, `speed` ve `temperature` kabul eder; daha dar Vidu/Kling tarzı TTS rotaları yalnızca `input` ve `stream_format` kabul edebilir. `user` dahil bilinmeyen üst seviye alanlar yok sayılmaz, `400 unsupported_parameter` döndürür.

<ParamField body="model" type="string" default="tts-1">
  TTS modeli. Örnekler: `tts-1`, `gpt-4o-mini-tts`, `speech-02-hd` ve `gemini-2.5-flash-tts`. Güncel liste için `GET /v1/models?recommended_for=tts` sorgulayın.
</ParamField>

<ParamField body="input" type="string" required>
  Ses üretilecek metin. Maksimum 4096 karakter.
</ParamField>

<ParamField body="voice" type="string | object">
  Ses seçici. `nova` gibi yerleşik bir ses, `Kore` gibi Gemini sesi veya uyumlu özel sesler için `{ "id": "voice-id" }` gibi bir nesne gönderin.
</ParamField>

<ParamField body="voice_id" type="string">
  MiniMax uyumlu speech modelleri için sağlayıcıya özgü ses seçici.
</ParamField>

<ParamField body="instructions" type="string">
  Destekleyen OpenAI uyumlu TTS modelleri için isteğe bağlı stil veya okuma talimatları.
</ParamField>

<ParamField body="prompt" type="string">
  Gemini TTS modelleri için isteğe bağlı konuşma stili prompt'u.
</ParamField>

<ParamField body="language_code" type="string">
  Gemini, xAI ve uyumlu TTS route’ları için isteğe bağlı dil kodu, örneğin `en-US`.
</ParamField>

<ParamField body="response_format" type="string">
  Ses formatı. Yaygın değerler `mp3`, `opus`, `aac`, `flac`, `wav` ve `pcm`; desteklenen değerler model ailesine göre değişir.
</ParamField>

<ParamField body="stream_format" type="string" default="audio">
  TokenLab teslim formatı: `audio` veya `sse`. `tts-1` ve `tts-1-hd` için `stream_format=sse` desteklenmez.
</ParamField>

<ParamField body="speed" type="number">
  Destekleyen model aileleri için konuşma hızı (0.25 ile 4.0 arası).
</ParamField>

<ParamField body="temperature" type="number">
  Gemini uyumlu TTS route’ları için sampling temperature (0 ile 2 arası).
</ParamField>

## Yanıt

İstenen formatta ses dosyasını döndürür.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/audio/speech" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "tts-1-hd",
      "voice": "nova",
      "input": "Hello, welcome to TokenLab!"
    }' \
    --output speech.mp3
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="sk-your-api-key",
      base_url="https://api.tokenlab.sh/v1"
  )

  response = client.audio.speech.create(
      model="tts-1-hd",
      voice="nova",
      input="Hello, welcome to TokenLab!"
  )

  response.stream_to_file("speech.mp3")
  ```

  ```javascript JavaScript theme={null}
  import OpenAI from 'openai';
  import fs from 'fs';

  const client = new OpenAI({
    apiKey: 'sk-your-api-key',
    baseURL: 'https://api.tokenlab.sh/v1'
  });

  const response = await client.audio.speech.create({
    model: 'tts-1-hd',
    voice: 'nova',
    input: 'Hello, welcome to TokenLab!'
  });

  const buffer = Buffer.from(await response.arrayBuffer());
  fs.writeFileSync('speech.mp3', buffer);
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://api.tokenlab.sh/v1/audio/speech');

  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Content-Type: application/json',
          'Authorization: Bearer sk-your-api-key'
      ],
      CURLOPT_POSTFIELDS => json_encode([
          'model' => 'tts-1-hd',
          'voice' => 'nova',
          'input' => 'Hello, welcome to TokenLab!'
      ])
  ]);

  $audio = curl_exec($ch);
  curl_close($ch);

  file_put_contents('speech.mp3', $audio);
  ```
</RequestExample>

## Ses Örnekleri

| Ses       | Açıklama                |
| --------- | ----------------------- |
| `alloy`   | Nötr, dengeli           |
| `ash`     | Sakin, ölçülü           |
| `ballad`  | Melodik, etkileyici     |
| `coral`   | Sıcak, davetkar         |
| `echo`    | Sıcak, konuşma tarzında |
| `fable`   | Etkileyici, anlatımsal  |
| `nova`    | Dostane, net            |
| `onyx`    | Derin, otoriter         |
| `sage`    | Bilge, düşünceli        |
| `shimmer` | Yumuşak, nazik          |
| `verse`   | Dinamik, çok yönlü      |

## Yanıt örneği

<ResponseExample>
  ```binary 200 OK theme={null}
  <binary audio data>
  ```
</ResponseExample>

## Önemli alanlar

<ResponseField name="Content-Type" type="string">API tarafından dönen event veya message type.</ResponseField>
<ResponseField name="body" type="binary">Ham yanıt gövdesi. JSON olarak parse etmeden doğrudan kaydedin.</ResponseField>
