kosareva.cloud
RU
РусскийEnglish

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

Распознавание речи в kosareva.cloud работает через POST /v1/audio/transcriptions: аудиофайл на вход, текст или субтитры на выход. Протокол тот же, что у Whisper в OpenAI: файл в multipart/form-data, ответ в привычных форматах. Ключ и базовый адрес те же, что у текстовых моделей.

Для русской речи начните с Whisper large-v3: 0,51 ₽ за минуту, сервер в России. Субтитры и таймкоды по словам даёт GigaASR, 0,84 ₽ за минуту. Запись на нескольких языках разберёт Gemini 3.5 Transcribe, около 0,55 ₽ за минуту.

Адрес
POST /v1/audio/transcriptions на https://api.kosareva.cloud
Модели
whisper-large-v3, gigaasr, nemotron-3-5-transcribe, gemini-3-5-transcribe
Файл
mp3, mp4, m4a, wav, ogg и opus, webm, flac, aac, aiff — до 25 МБ
Ответ
json, text, verbose_json; srt и vtt — у gigaasr и nemotron-3-5-transcribe
Цена
от 0,22 ₽ за минуту, ошибки не списываются

Первый запрос

Отправьте файл и имя модели. Без других параметров придёт JSON с полем text.

curl https://api.kosareva.cloud/v1/audio/transcriptions \
  -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
  -F model="whisper-large-v3" \
  -F file="@meeting.mp3" \
  -F language="ru"

language необязателен, но ускоряет работу: без него модель сначала определяет язык. Укажите его кодом из двух букв — ru, en, kk.

Python, OpenAI SDK

Если у вас уже есть код под Whisper, менять нужно три строки: ключ, base_url и model.

from openai import OpenAI

client = OpenAI(
    api_key="ВАШ_API_КЛЮЧ",
    base_url="https://api.kosareva.cloud/v1",
)

with open("meeting.mp3", "rb") as audio:
    result = client.audio.transcriptions.create(
        model="whisper-large-v3",
        file=audio,
        language="ru",
        prompt="Kosareva Cloud, Kubernetes, PostgreSQL",  # термины и имена — списком
    )

print(result.text)
print(result.usage)  # звуковые токены: 25 на секунду записи

Модели whisper-1 у нас нет — инструменту, который подставляет её по умолчанию, укажите whisper-large-v3.

Субтитры: srt и vtt

Субтитры делает gigaasr. Попросите response_format srt или vtt — придёт готовый файл, фразы разбиты по паузам и концам предложений. whisper-large-v3 на такой запрос ответит ошибкой 400.

with open("lecture.mp3", "rb") as audio:
    subtitles = client.audio.transcriptions.create(
        model="gigaasr",
        file=audio,
        response_format="srt",  # или "vtt"
    )

with open("lecture.srt", "w", encoding="utf-8") as file:
    file.write(subtitles)
curl https://api.kosareva.cloud/v1/audio/transcriptions \
  -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
  -F model="gigaasr" \
  -F file="@lecture.mp3" \
  -F response_format="srt" \
  -o lecture.srt

Таймкоды фраз и слов: verbose_json

В verbose_json кроме текста есть длительность записи и фразы с началом и концом в секундах. Каждое слово отдельно отдаёт только gigaasr.

with open("call.wav", "rb") as audio:
    result = client.audio.transcriptions.create(
        model="gigaasr",
        file=audio,
        response_format="verbose_json",
        timestamp_granularities=["word"],
    )

print(result.duration)  # длительность записи, секунды
for segment in result.segments:
    print(f"{segment.start:7.2f}–{segment.end:7.2f}  {segment.text}")
for word in result.words[:5]:
    print(word.word, word.start, word.end)

Параметр timestamp_granularities можно не передавать. У whisper-large-v3 массив words пустой, а gemini-3-5-transcribe отдаёт всю запись одной фразой.

Параметры запроса

ПолеЧто задаёт
fileЗапись: mp3, mp4, m4a, wav, ogg и opus, webm, flac, aac, aiff. Весь запрос вместе с файлом — до 25 МБ. Обязательно
modelwhisper-large-v3, gigaasr, nemotron-3-5-transcribe или gemini-3-5-transcribe. Обязательно
languageКод языка из двух букв, например ru. Без него язык определяется сам. gemini-3-5-transcribe и nemotron-3-5-transcribe это поле не учитывают
promptТермины, имена и названия через запятую, первые 400 символов. Работает у whisper-large-v3
response_formatjson (по умолчанию), text, verbose_json; srt и vtt — у gigaasr и nemotron-3-5-transcribe
timestamp_granularitiesПринимается для совместимости
temperatureПринимается, но на расшифровку не влияет

Что работает через kosareva.cloud

Коротко: файл целиком в текст или субтитры — да; живая расшифровка, перевод и разделение говорящих — нет.

Текст работает

Форматы json и text у всех четырёх моделей — для протоколов совещаний, заметок и голосовых сообщений.

Субтитры и таймкоды слов работает

У gigaasr и nemotron-3-5-transcribe: srt, vtt и слова с началом и концом в секундах в verbose_json.

Определение языка работает

Без поля language язык определяется сам. gemini-3-5-transcribe распознаёт больше 85 языков, в том числе когда собеседники переходят с одного на другой.

Словарь терминов с оговорками

Поле prompt со списком имён и терминов работает у whisper-large-v3.

Длинные записи с оговорками

До 25 МБ на запрос. Длинное режьте на части по паузам, большие файлы сжимайте: час речи в mp3 на 48 кбит/с занимает около 21 МБ.

Живая расшифровка нет

Файл отправляется целиком, ответ приходит, когда распознана вся запись; stream не поддерживается.

Перевод речи нет

Пути /v1/audio/translations нет — только распознавание на языке записи.

Разделение говорящих нет

Через наш API не отдаётся.

Распознавание в кабинете без кода нет

Только по API.

Сколько стоит

У whisper-large-v3 и gigaasr цена зависит только от длины записи: 0,00854 ₽ за секунду записи и 0,014 ₽ за секунду записи. У gemini-3-5-transcribe считаются токены звука и текста, в среднем около 0,55 ₽ за минуту.

Записьwhisper-large-v3gigaasr
Голосовое сообщение на 30 секунд0,26 ₽0,42 ₽
Звонок на 5 минут2,55 ₽4,2 ₽
Совещание на час31 ₽50 ₽

Сколько ушло на конкретный запрос, видно в расходах кабинета, а в форматах json и verbose_json — ещё и в поле usage ответа. В text, srt и vtt ответ — голый текст, поля usage там нет. Запрос, который закончился ошибкой, не списывается.

Устранение неполадок

Ошибка приходит в формате OpenAI с объяснением по-русски, деньги за неё не списываются. Исключение по форме — 413: слишком большой запрос отклоняется ещё на входе, тело такого ответа не JSON, поэтому смотрите на код ответа.

400: файл или параметры не подошли

Нет файла, файл пустой, формат не звуковой, модель не для распознавания (например, whisper-1), неизвестный response_format, srt или vtt у whisper-large-v3 или запись длиннее допустимого.

413: запрос больше 25 МБ

Сожмите файл — час речи в mp3 на 48 кбит/с занимает около 21 МБ — или разрежьте запись на части по паузам.

401: «Ключ не найден», «Ключ не принят» или «Ключ не распознан»

Ключ скопирован не целиком или удалён в кабинете. Нужен заголовок Authorization: Bearer ВАШ_API_КЛЮЧ с ключом из нашего кабинета — ключ OpenAI не подходит.

402: «На балансе kosareva.cloud недостаточно средств»

Пополните баланс в кабинете картой или СБП — от 50 ₽. Если деньги есть, проверьте, не стоит ли у ключа свой лимит в рублях.

429: модель перегружена

Повторите запрос через минуту, лучше с растущей паузой.

502 или 504

Сбой или долгий ответ на стороне модели — повторите запрос. Длинную запись надёжнее отправлять частями.

Что делать с расшифровкой дальше

Текст расшифровки — обычный текст, его можно сразу отправить в текстовую модель тем же ключом.

Расшифровка

Whisper large-v3 whisper-large-v3

Сервер в России, язык и термины задаются в запросе. 0,51 ₽ за минуту записи.

Субтитры

GigaASR gigaasr

Таймкоды по словам, srt и vtt. 0,84 ₽ за минуту записи.

Протокол и выжимка

Gemini 3.8 Flash gemini-3-8-flash

Отвечает быстро и стоит дешевле флагманов — чтобы из расшифровки звонка получить договорённости, задачи и сроки.

Совещание целиком

GPT-6.1 Sol gpt-6-1-sol

Окно больше миллиона токенов: расшифровка нескольких часов помещается в один запрос вместе с вопросами к ней.

Обратная задача — озвучка

ElevenLabs Turbo 2.5 elevenlabs-turbo-2-5

Текст в речь на /v1/audio/speech тем же ключом: до 5000 символов за запрос, ответ — mp3.

Частые вопросы

Подойдёт ли код, написанный под Whisper?

Да. Менять нужно ключ, base_url и имя модели — whisper-large-v3 вместо whisper-1. Формат запроса и ответа тот же.

Какие языки распознаются?

gemini-3-5-transcribe — больше 85 языков, язык определяется сам. Для русской речи берите whisper-large-v3 или gigaasr.

Сколько стоит час записи?

На whisper-large-v3 31 ₽, на gigaasr 50 ₽. Сумма видна в расходах кабинета.

Можно ли расшифровать запись длиннее часа?

Если файл меньше 25 МБ. Запись больше разрежьте на части по паузам и отправьте по очереди.

Разделяет ли модель говорящих?

Через наш API — пока нет: придёт сплошной текст или фразы с таймкодами без подписи, кто говорит.

Можно ли распознавать речь в реальном времени?

Нет. Файл отправляется целиком, ответ приходит после распознавания всей записи.

Рекомендуемые модели и цены

На странице модели все цены, примеры запросов и калькулятор расхода.