Model APIs
Whisper-1
Отправьте аудиофайл для транскрибации или перевода на английский, проверьте задачу и скачайте текст, 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 | Строка | json | json, text, srt, verbose_json или vtt. |
temperature | Число | 0 | Диапазон 0–1 включительно. Ноль допускает автоматическую корректировку температуры моделью; он не гарантирует детерминированный текст. |
timestamp_granularities[] | Повторяемая строка | Временные метки сегментов, где применимо | word, segment или оба значения. Требуется response_format=verbose_json. Допускается также имя повторяемого поля без скобок — timestamp_granularities. |
chunking_strategy | auto, объект VAD или null | Не задан | Поле общей аудиосхемы, применимость которого к Whisper не установлена. Для проверенного сценария не задавайте. Явное auto не прошло проверку совместимости реальным запросом. |
stream | Логическое значение или null | false | Игнорируется 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_json | text, 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
- Справочник перевода OpenAI
- Руководство OpenAI по преобразованию речи в текст
- Руководство OpenAI по промптам Whisper
OpenAI объявила об отключении Whisper в собственном API 26 февраля 2027 года. Это объявление не устанавливает дату отключения данного сервиса. См. уведомление OpenAI об устаревании.
