# Озвучить текст (TTS)

`POST /v1/audio/speech`

> OpenAI-совместимый синтез речи: в ответ приходит бинарное аудио (`audio/mpeg` | `audio/wav` | `audio/pcm`), не JSON. `input` — до 4096 символов; `voice` принимает OpenAI-имена (alloy→Puck, coral→Kore, echo→Charon, nova→Aoede, onyx→Fenrir, shimmer→Leda) и родные имена Gemini, неизвестный голос → Kore. `speed` — приблизительный (передаётся модели инструкцией). Списание — после успешного ответа по фактическому usage провайдера (при его отсутствии — оценка по длине текста); rate-limit — общий bucket 60 запросов в минуту.

Авторизация: заголовок `Authorization: Bearer <API-ключ>` (ключ sk-aiagg-… из личного кабинета). Base URL: `https://api.trackly.one/v1`.

Веб-версия: https://ai.trackly.one/developers/docs/reference/audio-speech · Индекс документации: https://ai.trackly.one/llms.txt

## Тело запроса (SpeechRequest)

Content-Type: `application/json`.

| Поле | Тип | Обязательное | Описание |
| --- | --- | --- | --- |
| `input` | `string` | да | — |
| `instructions` | `string \| null` | нет | — |
| `model` | `string` | да | — |
| `response_format` | `"mp3" \| "wav" \| "pcm"` | нет | По умолчанию: "mp3" |
| `speed` | `number` | нет | Диапазон 0.25–4. По умолчанию: 1 |
| `voice` | `string` | нет | По умолчанию: "" |

## Ответы

| Код | Описание | Схема |
| --- | --- | --- |
| 200 | Успешный ответ | — |
| 422 | Ошибка валидации тела запроса или параметров | — |

## Пример запроса

```bash
curl https://api.trackly.one/v1/audio/speech \
  -H "Authorization: Bearer $TRACKLY_API_KEY" \
  -H "Content-Type: application/json" \
  -o privet.mp3 \
  -d '{
    "model": "google/gemini-2.5-flash-preview-tts",
    "voice": "coral",
    "input": "Привет! Это Trackly — озвучиваем текст по API.",
    "response_format": "mp3"
  }'
```

```python
from openai import OpenAI

client = OpenAI(
    api_key="sk-aiagg-...",
    base_url="https://api.trackly.one/v1",
)

with client.audio.speech.with_streaming_response.create(
    model="google/gemini-2.5-flash-preview-tts",
    voice="coral",
    input="Привет! Это Trackly — озвучиваем текст по API.",
) as resp:
    resp.stream_to_file("privet.mp3")
```

```javascript
import fs from "node:fs";
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-aiagg-...",
  baseURL: "https://api.trackly.one/v1",
});

const resp = await client.audio.speech.create({
  model: "google/gemini-2.5-flash-preview-tts",
  voice: "coral",
  input: "Привет! Это Trackly — озвучиваем текст по API.",
});
fs.writeFileSync("privet.mp3", Buffer.from(await resp.arrayBuffer()));
```

## Пример ответа

Ответ бинарный: audio/mpeg (mp3), audio/wav или audio/pcm — по `response_format`. Сохраняйте байты в файл, как в примерах.
