Транскрибация аудиофайлов через API
Начиная с версии IVA Terra 6.0, аудиофайл завершенной записи можно отправить на транскрибацию одним запросом и затем получить результат по идентификатору задачи. Для обработки звука текущего мероприятия используются методы /process и /minutes.
Отправка файла
Метод: POST /api/v1/transcriptions.
Тип содержимого запроса: multipart/form-data.
| Поле | Обязательное | Описание |
|---|---|---|
token |
да |
ключ доступа клиента |
audiofile |
да |
аудиофайл |
diarization |
нет |
разделение речи по голосам. По умолчанию false |
identify_speakers |
нет |
определение имен говорящих по содержанию записи. Применяется вместе с diarization, по умолчанию false |
Поддерживаются файлы форматов WAV, MP3, M4A, OGG и FLAC. Допустимая длительность записи — до 5 часов, размер запроса — до 500 МБ.
| Для длинных записей рекомендуется сжатый формат. Пятичасовой WAV-файл может превышать ограничение по размеру |
Пример запроса:
curl -k -X POST "https://<TERRA_IP>:9001/api/v1/transcriptions" \
-F "token=<TOKEN>" \
-F "diarization=true" \
-F "audiofile=@meeting.mp3"
где:
<TERRA_IP> — адрес сервера IVA Terra
<TOKEN> — ключ доступа клиента
Ответ со статус-кодом 202 содержит идентификатор задачи в поле id, состояние processing, длительность записи в секундах и имя файла.
Получение результата
Метод: GET /api/v1/transcriptions/<TASK_ID>.
Путь: /api/v1/transcriptions/<TASK_ID>.
В параметре token передается ключ клиента, в параметре format — требуемый формат результата: json (по умолчанию), txt или xml.
Пример запроса:
curl -k "https://<TERRA_IP>:9001/api/v1/transcriptions/<TASK_ID>?token=<TOKEN>&format=json"
где:
<TERRA_IP> — адрес сервера IVA Terra
<TASK_ID> — идентификатор задачи из ответа на запрос отправки файла
<TOKEN> — ключ доступа клиента
Пока запись обрабатывается, поле status содержит значение processing. После завершения обработки оно принимает значение done или failed. Рекомендуемый интервал повторных запросов — от 10 до 30 секунд.
В результате json содержатся сведения о спикерах и фрагменты стенограммы. У каждого фрагмента есть начало и конец в секундах от начала записи, спикер и текст. При включенном identify_speakers вместо обозначения Спикер N подставляется ФИО, если его удалось определить. Результат txt содержит реплики строками, а xml соответствует формату метода /minutes.
HTTP-код 200 означает, что запрос состояния задачи выполнен успешно. Результат обработки аудиофайла указывается в поле status JSON-ответа. Если обработка завершилась с ошибкой, это поле содержит значение failed.
Коды ответов
| Код | Значение |
|---|---|
200 |
состояние задачи получено. Результат определяется полем status |
202 |
файл принят, задача создана |
400 |
некорректный файл, превышена длительность записи или запрошен неизвестный формат результата |
403 |
неверный ключ доступа, неразрешенный адрес или запрос к чужой задаче |
404 |
задача с указанным идентификатором не найдена или срок хранения результата истек |
413 |
размер запроса превышает 500 МБ |
5xx |
сервис недоступен |
Срок хранения аудио и результата определяется настройками IVA Terra. Один файл создает одну задачу с собственным идентификатором.