Синтез речи
Как запрашивать синтез речи и получать аудио-ответ
API для преобразования текста в высококачественную озвученную речь с использованием моделей OpenAI TTS.
OpenAI-совместимость: API полностью совместимо с OpenAI Text-to-Speech API, что позволяет легко интегрировать с существующими приложениями без изменения кода.
Поддерживаемые модели
NeuroAPI поддерживает следующие модели OpenAI для синтеза речи:
| Модель | Описание | Применение |
|---|---|---|
tts-1 | Стандартная модель для синтеза речи | Реальное время, чат-боты |
tts-1-hd | Высококачественная модель | Контент высокого качества |
Параметры запроса
Запрос к эндпоинту /v1/audio/speech принимает JSON со следующими параметрами:
Request Schema
interface TTSRequest {
// Идентификатор модели для синтеза речи
model: 'tts-1' | 'tts-1-hd';
// Текст для озвучивания
input: string;
// Голос для синтеза речи
voice: 'alloy' | 'echo' | 'fable' | 'onyx' | 'nova' | 'shimmer';
// Скорость речи от 0.25 до 4.0 (по умолчанию 1.0)
speed?: number;
// Формат выходного аудиофайла
response_format?: 'mp3' | 'opus' | 'aac' | 'flac' | 'wav' | 'pcm';
}Поддерживаемые голоса
Доступны следующие голоса OpenAI для синтеза речи:
| Голос | Описание |
|---|---|
alloy | Нейтральный, сбалансированный голос |
echo | Мужской голос с четкой дикцией |
fable | Британский акцент, рассказчик |
onyx | Глубокий мужской голос |
nova | Женский голос, энергичный |
shimmer | Мягкий женский голос |
Примеры использования
Базовый запрос
JSON Request
{
"model": "tts-1",
"input": "Привет! Это пример синтеза речи через NeuroAPI.",
"voice": "alloy",
"speed": 1.0,
"response_format": "mp3"
}Примеры использования (cURL, Python, OpenAI SDK)
OpenAI SDK
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://neuroapi.host/v1',
});
const speechFile = path.resolve("./speech.mp3");
const mp3 = await client.audio.speech.create({
model: "tts-1",
voice: "alloy",
input: "Привет! Это пример синтеза речи через NeuroAPI.",
});
const buffer = Buffer.from(await mp3.arrayBuffer());
await fs.promises.writeFile(speechFile, buffer);Python
import requests
import json
url = "https://neuroapi.host/v1/audio/speech"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"model": "tts-1-hd",
"input": "Это пример использования TTS API на Python",
"voice": "echo",
"speed": 0.9,
"response_format": "mp3"
}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
with open("output.mp3", "wb") as f:
f.write(response.content)
print("Аудиофайл успешно создан!")
else:
print(f"Ошибка: {response.status_code}")
print(response.text)cURL
curl --location 'https://neuroapi.host/v1/audio/speech' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"model": "tts-1",
"input": "Добро пожаловать в NeuroAPI! Это демонстрация синтеза речи.",
"voice": "nova",
"speed": 1.2,
"response_format": "mp3"
}' \
--output speech.mp3Форматы ответа
API поддерживает различные аудиоформаты для вывода:
| Формат | Описание | Применение |
|---|---|---|
mp3 | Стандартный формат (по умолчанию) | Веб, мобильные приложения |
opus | Сжатый формат для интернета | Потоковое аудио |
aac | Advanced Audio Coding | Мобильные устройства |
flac | Lossless аудио | Высокое качество |
wav | Несжатый формат | Профессиональная обработка |
pcm | Сырые аудиоданные | Низкоуровневая обработка |
Структура ответа
В зависимости от параметра response_format API возвращает:
Audio Response
# При указании аудиоформата (mp3, wav, etc.)
# Ответ содержит бинарные данные аудиофайла
Content-Type: audio/mpeg
Content-Length: 15234
[Binary audio data...]JSON Response
// При response_format: "json" (если поддерживается)
{
"text": "Исходный текст для синтеза",
"audio_url": "https://example.com/generated-audio.mp3",
"duration": 3.45,
"model": "tts-1",
"voice": "alloy"
}Советы по оптимизации TTS:
- Используйте
tts-1для реального времени- Выбирайте
tts-1-hdдля высокого качества- Контролируйте скорость речи параметром
speed(0.25-4.0)- Учитывайте размер файла при выборе формата
- Тестируйте разные голоса для вашей аудитории
Ограничения и баланс
При использовании TTS API действуют следующие ограничения:
- Максимальная длина текста: 4096 символов в одном запросе
- Подсчет токенов производится по количеству символов входного текста
- Стоимость зависит от выбранной модели и длины текста
- Лимиты скорости запросов зависят от тарифного плана