Озвучка текста (TTS)
Text-to-Speech — преобразование текста в речь. Генерируйте естественно звучащую речь из текстового ввода с помощью моделей OpenAI.
Эндпоинт POST /v1/audio/speech позволяет преобразовать текст в аудиофайл с озвучкой.
Поддерживаемые модели
| Модель | Описание |
|---|---|
gpt-4o-mini-tts | Быстрая модель с поддержкой инструкций по стилю речи |
tts-1 | Стандартная модель Text-to-Speech |
tts-1-hd | Модель высокого качества |
Базовое использование
python
from openai import OpenAI
client = OpenAI(
api_key="sk-aitunnel-xxx",
base_url="https://api.aitunnel.ru/v1/",
)
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Привет! Это пример озвучки текста через AITUNNEL.",
)
# Сохраняем аудио в файл
response.stream_to_file("output.mp3")typescript
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: "tts-1",
voice: "alloy",
input: "Привет! Это пример озвучки текста через AITUNNEL.",
});
const buffer = Buffer.from(await response.arrayBuffer());
fs.writeFileSync("output.mp3", buffer);shell
curl https://api.aitunnel.ru/v1/audio/speech \
-H "Authorization: Bearer sk-aitunnel-xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"voice": "alloy",
"input": "Привет! Это пример озвучки текста через AITUNNEL."
}' \
--output output.mp3Голоса
Доступные встроенные голоса:
| Голос | Описание |
|---|---|
alloy | Нейтральный, сбалансированный |
ash | Мужской, уверенный |
ballad | Мягкий, мелодичный |
coral | Женский, тёплый |
echo | Мужской, спокойный |
fable | Выразительный, повествовательный |
onyx | Мужской, глубокий |
nova | Женский, энергичный |
sage | Спокойный, размеренный |
shimmer | Женский, мягкий |
verse | Драматичный, выразительный |
marin | Приятный, современный |
cedar | Спокойный, естественный |
Совет
Все голоса хорошо работают с русским языком. Попробуйте несколько, чтобы найти подходящий для вашего проекта.
Инструкции по стилю речи
Модель gpt-4o-mini-tts поддерживает параметр instructions, который позволяет управлять стилем и эмоциональностью речи:
python
response = client.audio.speech.create(
model="gpt-4o-mini-tts",
voice="nova",
input="Добро пожаловать в наш магазин! Сегодня у нас отличные скидки.",
instructions="Говори с энтузиазмом и радостью, как диктор рекламы."
)
response.stream_to_file("promo.mp3")Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | Модель: tts-1, tts-1-hd или gpt-4o-mini-tts |
voice | string | Да | Один из встроенных голосов (см. таблицу выше) |
input | string | Да | Текст для озвучки (до 4096 символов) |
instructions | string | Нет | Инструкции по стилю (только для gpt-4o-mini-tts) |
response_format | string | Нет | Формат: mp3 (по умолчанию), opus, aac, flac, wav, pcm |
speed | number | Нет | Скорость речи от 0.25 до 4.0 (по умолчанию 1.0) |
Формат ответа
Эндпоинт возвращает бинарный аудиофайл в указанном формате. Стоимость запроса доступна в заголовках ответа.
Примеры использования
Генерация подкаста
python
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")Озвучка уведомлений
python
response = client.audio.speech.create(
model="gpt-4o-mini-tts",
voice="alloy",
input="У вас новое сообщение от команды поддержки.",
instructions="Спокойный, деловой тон. Короткая пауза в конце.",
response_format="wav",
)
response.stream_to_file("notification.wav")Лучшие практики
- Выбор модели:
tts-1для скорости,tts-1-hdдля качества,gpt-4o-mini-ttsдля управления стилем - Длинные тексты: Разбивайте на фрагменты до 4096 символов
- Формат аудио: Используйте
opusдля минимального размера файла,wavдля максимального качества - Кеширование: Сохраняйте сгенерированные аудиофайлы, чтобы не генерировать один и тот же текст повторно