Содержание
Руководство по транскрибации аудио
Руководство по транскрибации аудио
POST /v1/audio/transcriptions совместим с OpenAI-compatible форматом: загрузите аудио через multipart/form-data или отправьте base64 input_audio в JSON и получите текст. Доступны elevenlabs/scribe-v2 и elevenlabs/scribe-v2-medical. Актуальный список: GET /v1/models?output_modalities=transcription. GET /v1/models по умолчанию возвращает только текстовые модели; добавьте ?output_modalities=transcription (или all), чтобы увидеть список.
/v1/audio/transcriptionsПараметры
| Параметр | Тип | Обязателен | Описание |
|---|---|---|---|
| model | string | Да | ID модели транскрибации, например elevenlabs/scribe-v2. |
| file | file | Да | Аудиофайл (multipart). Поддерживаются wav, mp3, mp4, m4a, ogg, flac, webm, aac; максимум 25 MiB. Клиент JSON может отправить input_audio: {data: base64, format}. |
| response_format | string | Нет | json (по умолчанию) возвращает {text}; verbose_json добавляет язык, длительность и segments/words. |
| language | string | Нет | Необязательная подсказка языка, например en или zh. Пустое значение включает автоопределение. |
| prompt | string | Нет | Необязательный контекст для распознавания имён и терминов. Применяется не каждой моделью. |
| timestamp_granularities[] | string[] | Нет | word и/или segment. Применяется только с response_format=verbose_json; иначе игнорируется. Временные метки на уровне слов пока не возвращаются; segments возвращаются. |
Форматы вывода
response_format принимает только json или verbose_json (text, srt и vtt не поддерживаются). stream не поддерживается. Длительность ограничена для каждой модели, по умолчанию 60 секунд. Более длинное аудио отклоняется до обработки с кодом 413 audio_too_long и не оплачивается. Разделите длинную запись.
Стоимость
Транскрибация оплачивается за секунду аудио. Цена за секунду указана на странице модели в /models и в GET /v1/models как pricing.second; цена за минуту в 60 раз выше. В ответе usage показаны оплачиваемые секунды, а usage.cost — сумма списания.
Примеры
curl https://api.bazaarlink.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $BAZAARLINK_API_KEY" \
-F model="elevenlabs/scribe-v2" \
-F file=@audio.mp3 \
-F response_format=verbose_json \
-F "timestamp_granularities[]=word"Частые ошибки
| Статус | Причина и решение |
|---|---|
| 400 | Неверный запрос: отсутствует model или file, пустое аудио, response_format не json/verbose_json, stream=true (unsupported_parameter) либо timestamp_granularities не word/segment. |
| 401 | Ключ API отсутствует или недействителен. |
| 402 | Недостаточно средств. Пополните баланс и повторите запрос. |
| 413 | audio_too_large: декодированное аудио превышает 25 MiB. audio_too_long: аудио превышает лимит модели (по умолчанию 60 секунд), отклоняется до обработки и не оплачивается. Сожмите или разделите файл. |
| 429 | Превышен лимит запросов. Подождите согласно Retry-After и повторите. |
| 502 | Сервис модели временно недоступен или передача аудио прервалась. Повторите запрос; неудачные запросы не оплачиваются. |
Транскрибация аудио
Отправьте multipart/form-data model и file или JSON model и input_audio:{data,format} (сырой base64). Форматы: wav, mp3, mp4, m4a, ogg, flac, webm, aac. Аудио: максимум 25 MiB; тело запроса: 50 MiB. audio.transcription_max_seconds_by_model задаёт лимит для модели; при отсутствии используется audio.transcription_max_seconds, затем значение по умолчанию 60 секунд. Более длинное аудио отклоняется до обработки с кодом 413 audio_too_long и не оплачивается. response_format: json или verbose_json; timestamp_granularities word/segment требует verbose_json. stream не поддерживается (400 unsupported_parameter); слишком большое аудио: 413 audio_too_large. provider игнорируется. Цены базы данных за usage.seconds или входные/выходные token; цена минуты = 60 × цена секунды. usage.cost — сумма клиента в USD.
/v1/audio/transcriptions