GETAPI
СвязатьсяВойти
GETAPI/Документация/Синтез речи

Синтез речи

Преобразование текста в аудио

Метод

POST https://api.getapi.ru/v1/audio/speech

Метод используется с моделью синтеза речи, поддерживающей Speech API

ПолеТипОбязательноеОписание
modelstringДаID модели синтеза речи
inputstringДаТекст для озвучивания
voicestringЗависит от моделиГолос, поддерживаемый моделью
response_formatstringНетФормат аудио, например mp3
speednumberНетСкорость, если поддерживается
instructionsstringНетСтиль произношения для совместимых моделей

Набор голосов, форматов и ограничение длины зависят от модели

Для eleven-v3 используйте response_format: "mp3" или "pcm". Значения wav, opus, flac и aac отклоняются провайдером. Допустимый speed находится в диапазоне от 0.7 до 1.2 включительно

Gemini TTS и HeyGen Voice требуют response_format: "pcm". Такой ответ содержит сырые PCM-данные, частота и число каналов указаны в Content-Type, добавляйте контейнер WAV перед сохранением в .wav

Для seed-audio-1-0 можно передать описание голоса в input без поля voice. Голос alloy для этой модели не подходит

Пример

Пример использует eleven-v3 и голос george. Установите пакет openai и задайте GETAPI_API_KEY

python
import os
from pathlib import Path
from openai import OpenAI

client = OpenAI(
    base_url="https://api.getapi.ru/v1",
    api_key=os.environ["GETAPI_API_KEY"],
    max_retries=0,
)

response = client.audio.speech.create(
    model="eleven-v3",
    voice="george",
    input="Здравствуйте, ваша заявка принята",
    response_format="mp3",
)
Path("speech.mp3").write_bytes(response.read())

Ответ

Успешный ответ содержит аудиоданные, а не JSON с текстом. При прямом HTTP-вызове сначала проверьте статус и Content-Type, затем сохраняйте тело

При ошибке API может вернуть JSON. Не сохраняйте его как аудиофайл только из-за расширения .mp3

Потоковая загрузка

Побайтовое чтение HTTP-ответа позволяет начать передачу файла до полного скачивания. Это не SSE и не двусторонний голосовой сеанс

Поддержка Realtime не следует из поддержки Speech API

Аудио через Chat Completions

gpt-audio-mini использует отдельный сценарий с аудиовыводом через POST /v1/chat/completions

json
{
  "model": "gpt-audio-mini",
  "messages": [{"role": "user", "content": "Скажи: привет"}],
  "modalities": ["text", "audio"],
  "audio": {"voice": "alloy", "format": "pcm16"},
  "stream": true
}

Аудиофрагменты приходят в choices[].delta.audio.data как base64. Декодируйте их по порядку и собирайте поток PCM16. Это сырые аудиоданные без заголовка WAV, для воспроизведения задайте частоту и число каналов из контракта модели

Проверяйте завершение потока и usage. Не считайте этот сценарий эквивалентом вызова Speech API, поддержка непотокового вывода зависит от модели

Speech API отклоняет provider.only, provider.order и provider.ignore с кодом provider_routing. Правила Chat Completions на этот метод не распространяются, см. маршрутизацию

Стоимость

Единица тарификации зависит от модели и может учитывать текстовые или аудиотокены, символы либо другие параметры. Актуальные условия смотрите в стоимости и учёте

Распознавание существующего аудио описано в Speech to Text

Статус выполнения аудио не подтверждает окончательный расчёт, при manual_reconciliation проверьте резерв по правилам списания

Назад
← Генерация и редактирование изображений
Далее
Распознавание речи →