Озвучка текста (TTS)
Text-to-Speech — преобразование текста в речь. Генерируйте естественно звучащую речь на 20+ языках с помощью моделей от OpenAI, xAI, Google и Mistral.
Эндпоинт POST /v1/audio/speech совместим с OpenAI Audio Speech API — используйте любой совместимый SDK, просто сменив base_url.
Поддерживаемые модели
| Модель | Голоса | Цена | Форматы |
|---|---|---|---|
gpt-4o-mini-tts | 13 голосов OpenAI | 0,115 ₽ / 1M символов | mp3, pcm |
tts-1 | 13 голосов OpenAI | 2 880 ₽ / 1M символов | mp3, pcm, opus, aac, flac, wav |
tts-1-hd | 13 голосов OpenAI | 5 760 ₽ / 1M символов | mp3, pcm, opus, aac, flac, wav |
grok-voice-tts-1.0 | eve, ara, rex, sal, leo | 2 880 ₽ / 1M символов | mp3, pcm |
gemini-3.1-flash-tts-preview | 30 голосов Gemini | ~384 ₽ / 1M символов | только pcm |
voxtral-mini-tts-2603 | 29 голосов (EN, FR) | 3 072 ₽ / 1M символов | mp3, pcm |
Базовое использование
from openai import OpenAI
from pathlib import Path
client = OpenAI(
api_key="sk-aitunnel-xxx",
base_url="https://api.aitunnel.ru/v1/",
)
response = client.audio.speech.create(
model="gpt-4o-mini-tts",
voice="alloy",
input="Привет! Это пример озвучки текста через AITUNNEL.",
response_format="mp3",
)
response.stream_to_file("output.mp3")import OpenAI from "openai";
import fs from "fs";
const client = new OpenAI({
apiKey: "sk-aitunnel-xxx",
baseURL: "https://api.aitunnel.ru/v1/",
});
const response = await client.audio.speech.create({
model: "gpt-4o-mini-tts",
voice: "alloy",
input: "Привет! Это пример озвучки текста через AITUNNEL.",
response_format: "mp3",
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync("output.mp3", buffer);curl https://api.aitunnel.ru/v1/audio/speech \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"voice": "alloy",
"input": "Привет! Это пример озвучки текста через AITUNNEL.",
"response_format": "mp3"
}' \
--output output.mp3Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | Идентификатор модели (см. таблицу выше или формат провайдер/модель) |
input | string | Да | Текст для озвучки |
voice | string | Да | Идентификатор голоса — зависит от модели |
response_format | string | Нет | Формат аудио: mp3 (по умолчанию) или pcm. Для OpenAI-моделей также opus, aac, flac, wav |
speed | number | Нет | Скорость речи от 0.25 до 4.0 (только для OpenAI, по умолчанию 1.0) |
instructions | string | Нет | Инструкции по стилю речи (только для gpt-4o-mini-tts) |
Формат ответа
Эндпоинт возвращает бинарный аудиопоток, а не JSON. Стоимость и баланс доступны в заголовках:
| Заголовок | Описание |
|---|---|
cost-rub | Стоимость запроса в рублях |
balance | Остаток баланса после списания |
Голоса OpenAI
Доступны для gpt-4o-mini-tts, gpt-4o-mini-tts-2025-12-15, tts-1, tts-1-hd:
| Голос | Описание |
|---|---|
alloy | Нейтральный, сбалансированный |
ash | Мужской, уверенный |
ballad | Мягкий, мелодичный |
coral | Женский, тёплый |
echo | Мужской, спокойный |
fable | Выразительный, повествовательный |
onyx | Мужской, глубокий |
nova | Женский, энергичный |
sage | Спокойный, размеренный |
shimmer | Женский, мягкий |
verse | Драматичный, выразительный |
marin | Приятный, современный |
cedar | Спокойный, естественный |
Голоса xAI Grok Voice TTS 1.0
Модель grok-voice-tts-1.0 предлагает 5 встроенных голосов:
| Голос | Характер |
|---|---|
eve | Женский, спокойный |
ara | Женский, энергичный |
rex | Мужской, авторитетный |
sal | Мужской, нейтральный |
leo | Мужской, дружелюбный |
Модель поддерживает 20+ языков с автоматическим определением и inline speech-теги для управления паузами, акцентом, темпом и эмоциями.
Голоса Google Gemini 3.1 Flash TTS Preview
Модель gemini-3.1-flash-tts-preview поддерживает 30 голосов на 70+ языках:
Zephyr, Puck, Charon, Kore, Fenrir, Leda, Orus, Aoede,
Callirrhoe, Autonoe, Enceladus, Iapetus, Umbriel, Algieba,
Despina, Erinome, Algenib, Rasalgethi, Laomedeia, Achernar,
Alnilam, Schedar, Gacrux, Pulcherrima, Achird, Zubenelgenubi,
Vindemiatrix, Sadachbia, Sadaltager, SulafatМодель поддерживает до двух одновременных спикеров с независимой настройкой голоса и стиля, а также 200+ inline audio-тегов ([whispers], [laughs], [excited] и др.) для управления подачей прямо в тексте.
Голоса Mistral Voxtral Mini TTS
Модель voxtral-mini-tts-2603 поддерживает английские и французские голоса:
en_paul_neutral, en_paul_happy, en_paul_sad, en_paul_excited,
en_paul_confident, en_paul_cheerful, en_paul_frustrated, en_paul_angry,
gb_oliver_neutral, gb_oliver_sad, gb_oliver_excited, gb_oliver_curious,
gb_oliver_confident, gb_oliver_cheerful, gb_oliver_angry,
gb_jane_neutral, gb_jane_sad, gb_jane_confused, gb_jane_sarcasm,
gb_jane_frustrated, gb_jane_curious, gb_jane_confident,
gb_jane_shameful, gb_jane_jealousy,
fr_marie_neutral, fr_marie_happy, fr_marie_sad,
fr_marie_excited, fr_marie_curious, fr_marie_angryПримеры использования
gpt-4o-mini-tts с инструкциями по стилю
response = client.audio.speech.create(
model="gpt-4o-mini-tts",
voice="nova",
input="Добро пожаловать! Сегодня у нас отличные скидки.",
instructions="Говори с энтузиазмом, как диктор рекламы.",
)
response.stream_to_file("promo.mp3")Grok Voice TTS 1.0
response = client.audio.speech.create(
model="grok-voice-tts-1.0",
voice="eve",
input="Hello! This is a test of Grok Voice TTS.",
response_format="mp3",
)
response.stream_to_file("grok.mp3")Gemini 3.1 Flash TTS с эмоциональными тегами
response = client.audio.speech.create(
model="gemini-3.1-flash-tts-preview",
voice="Kore",
input="[excited] Невероятно! [whispers] Это работает.",
response_format="mp3",
)
response.stream_to_file("gemini.mp3")Voxtral Mini TTS
response = client.audio.speech.create(
model="voxtral-mini-tts-2603",
voice="en_paul_neutral",
input="Welcome to our service. How can I help you today?",
response_format="mp3",
)
response.stream_to_file("voxtral.mp3")Генерация подкаста
segments = [
("nova", "Добрый день! Вы слушаете еженедельный подкаст о технологиях."),
("onyx", "Сегодня мы обсудим последние новости в мире ИИ."),
("nova", "Начнём с обзора новых моделей этой недели."),
]
for i, (voice, text) in enumerate(segments):
response = client.audio.speech.create(
model="tts-1-hd",
voice=voice,
input=text,
)
response.stream_to_file(f"segment_{i}.mp3")Лучшие практики
- Выбор модели:
gpt-4o-mini-tts— лучший выбор для задач с управлением стилем;tts-1— для скорости;grok-voice-tts-1.0— для многоязычного охвата;gemini-3.1-flash-tts-preview— для 70+ языков и эмоциональных тегов - Форматы: используйте
mp3для хранения и воспроизведения;pcm— для потоковой передачи с минимальной задержкой - Длинные тексты: разбивайте на фрагменты и объединяйте аудио — это снижает задержку первого чанка
- Форматы для не-OpenAI моделей:
mp3иpcmподдерживаются для всех;opus,aac,flac,wav— только для OpenAI-моделей - Кэширование: сохраняйте сгенерированные файлы, чтобы не платить за повторную генерацию одного текста