Images, audio и video
JSON-запросы для изображений, речи, транскрибации и видео.
Задача
Вызвать media-модель через подходящий endpoint.
Рабочий пример
Транскрибация принимает аудио в base64:
{
"model": "openai/whisper-large-v3",
"input_audio": {
"data": "BASE64_AUDIO",
"format": "wav"
}
}Синтез речи:
{
"model": "openai/tts-1",
"input": "Добро пожаловать в GoRouter",
"voice": "alloy",
"format": "mp3"
}Генерация аудио выполняется через /chat/completions. Для моделей, которые
возвращают звук, запросите обе выходные модальности:
{
"model": "google/lyria-3-pro-preview",
"messages": [
{
"role": "user",
"content": "Двухминутная атмосферная электронная песня без вокала"
}
],
"modalities": ["text", "audio"]
}У музыкальных моделей с фиксированной ценой /song или /clip нет настроек
голоса: GoRouter определяет такой контракт по данным каталога, не по ID модели,
и не отправляет TTS-параметр audio. Текстовая часть ответа может содержать
слова и структуру композиции, а сама запись возвращается отдельно в
choices[0].message.audio.data как base64. В веб-чате она отображается
аудиоплеером.
Разговорные audio-модели с настраиваемым голосом используют тот же endpoint, но дополнительно принимают конфигурацию:
{
"model": "openai/gpt-audio-mini",
"messages": [{ "role": "user", "content": "Поздоровайся дружелюбно" }],
"modalities": ["text", "audio"],
"audio": { "voice": "alloy", "format": "mp3" }
}Это не то же самое, что TTS: модели с output-модальностью speech вызываются
через /audio/speech и возвращают бинарный файл, тогда как output-модальность
audio работает через Chat Completions и возвращает текст и звук.
Видео можно запускать не только из текста, но и из изображений. Для моделей,
которые публикуют поддержку ключевых кадров, используйте frame_images:
{
"model": "minimax/hailuo-3-max",
"duration": 5,
"resolution": "768p",
"aspect_ratio": "16:9",
"frame_images": [
{
"type": "image_url",
"image_url": { "url": "data:image/png;base64,..." },
"frame_type": "first_frame"
}
]
}prompt в таком запросе необязателен. URL изображения может быть HTTPS-ссылкой
или data URL. Если модель поддерживает оба типа кадров, первое вложение в чате
становится first_frame, второе — last_frame. Для модели только с
first_frame можно приложить не более одного изображения.
Если видеомодель принимает изображения, но не объявляет ключевые кадры, чат
передаёт вложения как input_references для общего визуального ориентира. Это
не гарантирует поддержку конкретным провайдером: окончательный набор параметров
по-прежнему определяется каталогом и документацией выбранной модели.
Важные параметры
/imagesпринимает JSON сmodelиprompt./audio/speechвозвращает бинарный аудиофайл./audio/transcriptionsпринимает JSON сinput_audio.dataиinput_audio.format.- Audio-output модели вызываются через
/chat/completionsсmodalities: ["text", "audio"]; звук приходит вmessage.audioилиdelta.audio. /videosсоздаёт задачу; состояние проверяется через/videos/{jobId}, файл — через/videos/{jobId}/content.- Допустимые
frame_type, длительность, разрешение и соотношение сторон берутся из актуальных возможностей модели, без списка исключений по ID. - В настройках видеомодели поле «Звук в видео» показывается только тогда, когда модель объявляет поддержку
generate_audio. Для моделей без этой возможности, включая MiniMax H3 Max, параметр не отправляется.
Ответ
Images, transcription и audio-output Chat Completions возвращают JSON. Speech и video content возвращают бинарные данные с соответствующим Content-Type. Video create возвращает ID задачи и локальные polling/content URL.
Ошибки и ограничения
- Форматы, размеры, голоса и длительность зависят от модели.
- Музыкальные модели работают в один ход: новая генерация использует только текущий prompt, а не историю предыдущих песен.
- Для фиксированной цены песни или клипа GoRouter резервирует опубликованную стоимость операции; для token-priced audio — максимальную стоимость выходного аудио по лимиту токенов. Неизвестный тариф по-прежнему отклоняется до отправки запроса.
- Возможность генерации звука вместе с видео также зависит от модели и данных video-каталога.
- Генерация видео асинхронна: не скачивайте content до готового состояния задачи.
- Base64 увеличивает размер аудио; учитывайте лимит тела HTTP-запроса.