Перейти к основному содержимому

Асинхронное распознавание

Для длинных записей используйте асинхронный режим: отправьте файл, получите task_id, затем запросите результат.

Шаг 1. Отправка файла

POST /api/v1/speech-to-text/async

Параметры (multipart/form-data):

ПараметрТипОписание
filebinaryАудиофайл (обязательный)
langstringЯзык распознавания, например ru. По умолчанию ru.

curl

curl -X POST https://cognico.ru/api/v1/speech-to-text/async \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@meeting.mp3" \
-F "lang=ru"

Python

import requests

url = "https://cognico.ru/api/v1/speech-to-text/async"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

with open("meeting.mp3", "rb") as f:
response = requests.post(url, headers=headers, files={"file": f}, data={"lang": "ru"})

task = response.json()
print(f"Task ID: {task['task_id']}")

Пример ответа

{
"task_id": "abc123-def456-ghi789",
"filename": "meeting.mp3",
"size_kbytes": 15360,
"duration_sec": 600,
"format": "mp3"
}

Шаг 2. Получение результата

GET /api/v1/speech-to-text/async/{task_id}

Ответы:

HTTP-статусТело ответаОписание
200RecognitionResultDataРаспознавание завершено
202RecognitionTaskDataЗадача ещё обрабатывается

curl

curl -s -o response.json -w "%{http_code}" \
https://cognico.ru/api/v1/speech-to-text/async/abc123-def456-ghi789 \
-H "Authorization: Bearer YOUR_API_KEY"

Python

import requests
import time

task_id = "abc123-def456-ghi789"
url = f"https://cognico.ru/api/v1/speech-to-text/async/{task_id}"
headers = {"Authorization": "Bearer YOUR_API_KEY"}

# Периодически проверяем готовность
while True:
response = requests.get(url, headers=headers)
if response.status_code == 200:
result = response.json()
print(result["text"])
break
# 202 — задача ещё обрабатывается
time.sleep(5)

Когда задача завершена (HTTP 200), формат ответа аналогичен синхронному методу (RecognitionResultData).