Claude Opus 5.5 уже доступна в SeedRouter

Model APIs

Whisper-1

View Markdown

Отправьте аудиофайл для транскрибации или перевода на английский, проверьте задачу и скачайте текст, JSON или субтитры.

Whisper-1 преобразует записанную речь в текст. Используйте /v1/audio/transcriptions, чтобы сохранить язык речи, или /v1/audio/translations, чтобы получить английский текст. Оба адреса принимают multipart/form-data с загруженным файлом. SeedRouter сначала возвращает ID задачи; скачайте выбранный результат после её завершения. Это отличается от синхронного ответа OpenAI SDK.

Playground и актуальные цены · Первая транскрибация · OpenAPI · Markdown

Отправка записи

Храните API-ключ на сервере. Позвольте HTTP-клиенту сформировать разделитель multipart; не задавайте вручную заголовок Content-Type: multipart/form-data без разделителя.

curl https://api.seedrouter.ai/v1/audio/transcriptions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -F model=whisper-1 \
  -F [email protected] \
  -F language=en \
  -F response_format=verbose_json \
  -F 'timestamp_granularities[]=word' \
  -F 'timestamp_granularities[]=segment'

Ответ подтверждает создание задачи, а не готовую расшифровку:

{
  "id": "task_example",
  "model": "whisper-1",
  "status": "processing",
  "created_at": 1792376116
}

Сохраните фактически возвращённый id. Отправляйте один раз. Потеря соединения не доказывает, был ли запрос принят; проверьте историю задач перед созданием нового запроса.

Получение результата

curl "https://api.seedrouter.ai/v1/tasks/$TASK_ID" \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY"

Повторяйте проверку, пока status равен processing. Завершённая задача содержит output.url и output.format; неудачная — error.code и error.message. Тайм-аут опроса не является конечным состоянием задачи. Прочитать её может только владелец. Примеры ниже показывают структуру ответа:

{
  "id": "task_example",
  "model": "whisper-1",
  "status": "completed",
  "output": {
    "format": "verbose_json",
    "url": "https://static.seedrouter.ai/media/tasks/task_example/0.json"
  }
}

Скачайте output.url отдельным GET-запросом. Читайте JSON-файл как JSON, а остальные форматы — как текст. Публичные ответы задач не содержат цен или сведений об аккаунте.

Параметры транскрибации

file и model обязательны. Девять полей ниже образуют общую поверхность запроса, включая file, model и явно игнорируемый stream. Совместимость chunking_strategy остаётся непроверенной, как описано ниже.

ПолеТипПо умолчаниюКонтракт
fileДвоичная загрузкаОбязательноОдин непустой аудиофайл, а не URL или строка имени файла. См. ограничения файлов.
modelСтрокаОбязательноСтрого whisper-1.
languageСтрокаАвтоопределениеПодсказка языка входа, например en. Локальный список разрешённых языков не применяется. Не задавайте для автоопределения.
promptСтрокаНе заданКонтекст, написание или продолжение на языке аудио. Искусственный лимит символов не вводится; Whisper учитывает последние 224 токена своего токенизатора. Это не промпт с универсальными инструкциями.
response_formatСтрокаjsonjson, text, srt, verbose_json или vtt.
temperatureЧисло0Диапазон 0–1 включительно. Ноль допускает автоматическую корректировку температуры моделью; он не гарантирует детерминированный текст.
timestamp_granularities[]Повторяемая строкаВременные метки сегментов, где применимоword, segment или оба значения. Требуется response_format=verbose_json. Допускается также имя повторяемого поля без скобок — timestamp_granularities.
chunking_strategyauto, объект VAD или nullНе заданПоле общей аудиосхемы, применимость которого к Whisper не установлена. Для проверенного сценария не задавайте. Явное auto не прошло проверку совместимости реальным запросом.
streamЛогическое значение или nullfalseИгнорируется Whisper-1. SSE и частичная расшифровка не создаются.

Объект VAD содержит обязательный type: "server_vad", необязательный целочисленный prefix_padding_ms (документированное значение по умолчанию 300), необязательный целочисленный silence_duration_ms (по умолчанию 200) и необязательный числовой threshold от 0 до 1 (по умолчанию 0,5). Недокументированный диапазон целых чисел не вводится. Если стратегия не задана, она остаётся незаданной; значения объекта по умолчанию не делают auto значением запроса по умолчанию.

Для совместимости с SDK объект VAD можно закодировать одной JSON-частью multipart либо полями chunking_strategy[type], chunking_strategy[prefix_padding_ms], chunking_strategy[silence_duration_ms] и chunking_strategy[threshold]. Не смешивайте эти варианты. Принятие такой структуры полей не доказывает, что VAD работает с этой моделью.

Необязательные текстовые поля нужно опускать, а не передавать буквальную multipart-строку null. Неизвестные и неприменимые к модели поля отбрасываются. В частности, diarized_json, настройки эталонных голосов говорящих, logprobs и события реального времени не относятся к возможностям Whisper-1. Дублирующиеся скалярные поля недопустимы.

Ограничения файлов

Документированные форматы аудио: FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV и WebM. Текущий предел загрузки — 26,214,400 байт (25 MiB). FAQ OpenAI Audio API указывает максимальный размер запроса 25 MiB для загрузок устаревшего Whisper-1; держите размер файлов ниже предела, чтобы оставить место для полей multipart. Файл должен содержать читаемое аудио с положительной измеримой длительностью. Одно расширение не доказывает корректность аудио.

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

Перевод на английский

curl https://api.seedrouter.ai/v1/audio/translations \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -F model=whisper-1 \
  -F [email protected] \
  -F response_format=text \
  -F temperature=0

У перевода пять полей: file, model, prompt, response_format и temperature с теми же типами и границами, что выше. Необязательный промпт должен быть на английском. Выбора целевого языка нет. language, настройки временных меток и разбиения, а также другие поля только для транскрибации отбрасываются на этом адресе. Успешный тест перевода с английским входом не устанавливает точность для каждого исходного языка.

Поля скачанного файла

ФорматСодержимое
jsonОбъект с text. Транскрибация может также содержать usage: {type: "duration", seconds: number}.
textОбычный текст расшифровки.
srtПронумерованные блоки субтитров с таймкодами SRT.
vttСубтитры WebVTT.
verbose_jsontext, language и duration в секундах; необязательные segments, а для транскрибации — words и длительность usage.

У каждого слова есть word, start и end. У каждого сегмента есть id, seek, start, end, text, tokens, temperature, avg_logprob, compression_ratio и no_speech_prob. start и end измеряются в секундах. Сегменты не определяют говорящих. Может присутствовать константа task: "transcribe", относящаяся только к транскрибации. Файлы перевода не содержат words и usage, предназначенных только для транскрибации. Измерения аудио и текст расшифровки не переписываются для имитации ожидаемого ответа.

Тарификация

Обе операции используют измеренную длительность входа. Для каждой записи единицы учёта аудио равны round(ceil(seconds) × 1000 / 60). Умножьте их на актуальную цену единицы; эти единицы не считают текст расшифровки. Например, 15 секунд дают 250 единиц, а 15,1 секунды — 267. Страница и Playground используют один актуальный тариф. Неудачные запросы не оплачиваются.

Статус проверки

Проверено 19 октября 2026 года. Локальные сквозные тесты завершили все пять форматов транскрибации и перевод в verbose_json, включая скачивание результатов владельцем и точные списания с аккаунта. Транскрибация успешно запросила одновременно временные метки слов и сегментов. Загрузки FLAC, OGG, M4A, MP4 и WAV с длительностью меньше секунды или с дробной частью прошли отдельные проверки совместимости реальными запросами.

Явное chunking_strategy=auto было отклонено. Три отправленных случая — WebM, MPEG вместе с VAD и MPGA вместе с stream=true — не завершились успешно. Эти ошибки не устанавливают, какая из совместных настроек вызвала отклонение. Форматы и опции остаются непроверенными; сервис не подменяет незаметно явно запрошенную стратегию. Тест перевода использовал английский вход, поэтому качество перевода между языками не измерялось. Не считайте принятую схему доказательством того, что каждая комбинация прошла реальный тест.

Ошибки и восстановление

Недопустимые сочетания файла и параметров отклоняются до создания задачи. Ошибки API содержат числовой code и понятное message; см. коды ошибок. После принятия проверьте конечный статус задачи. Если результат отправки неизвестен, найдите существующую задачу перед новой отправкой. Неудачная задача не оплачивается.

Источники контракта

OpenAI объявила об отключении Whisper в собственном API 26 февраля 2027 года. Это объявление не устанавливает дату отключения данного сервиса. См. уведомление OpenAI об устаревании.