Аудио

GetRouter предоставляет три OpenAI-совместимые операции с аудио:

ОперацияЭндпоинт
Распознавание речиPOST /v1/audio/transcriptions
Перевод речиPOST /v1/audio/translations
Синтез речиPOST /v1/audio/speech

Используйте модель, которая поддерживает нужную аудиооперацию.

Распознавание речи

Загрузите исходный файл как данные формы multipart:

curl https://getrouter.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=MODEL_ID" \
  -F "response_format=json"

JSON-ответ содержит распознанный текст в поле text.

Схема API включает следующие необязательные поля распознавания:

  • language — код языка ISO-639-1
  • prompt — контекст или подсказка по словарю
  • response_formatjson, text, srt, verbose_json или vtt
  • temperature
  • timestamp_granularitiesword или segment

Поддержка необязательных полей зависит от выбранной модели.

Перевод речи

curl https://getrouter.ai/v1/audio/translations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "[email protected]" \
  -F "model=MODEL_ID" \
  -F "response_format=json"

Ответ имеет ту же базовую структуру с полем text, что и ответ распознавания.

Синтез речи

curl https://getrouter.ai/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "GetRouter подключает ваше приложение к нескольким моделям ИИ.",
    "voice": "alloy",
    "response_format": "mp3"
  }' \
  --output speech.mp3

Схема запроса синтеза речи включает:

ПолеОписание
modelОбязательный идентификатор модели синтеза речи
inputОбязательный текст для синтеза
voiceОбязательный голос, поддерживаемый моделью
response_formatmp3, opus, aac, flac, wav или pcm
speedСкорость воспроизведения для совместимых моделей

Пример распознавания на Python

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://getrouter.ai/v1",
)

with open("recording.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="MODEL_ID",
        file=audio_file,
    )

print(transcript.text)
Tip

Загружаемые аудиофайлы и результаты генерации могут быть большими. Настройте подходящие тайм-ауты клиента и передавайте файловые данные потоком, не создавая лишних копий в памяти.

Оплата и повторные попытки

Стоимость обработки аудио может зависеть от модели, размера входных данных, длительности или объёма сгенерированного результата. Проверьте страницу Pricing. Прежде чем повторять запрос, выясните, не завершил ли сервер обработку при неудачной загрузке файла клиентом.

Что дальше