Асинхронное распознавание
Для длинных записей используйте асинхронный режим: отправьте файл, получите task_id, затем запросите результат.
Шаг 1. Отправка файла
POST /api/v1/speech-to-text/async
Параметры (multipart/form-data):
| Параметр | Тип | Описание |
|---|---|---|
file | binary | Аудиофайл (обязательный) |
lang | string | Язык распознавания, например 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-статус | Тело ответа | Описание |
|---|---|---|
200 | RecognitionResultData | Распознавание завершено |
202 | RecognitionTaskData | Задача ещё обрабатывается |
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).