SPR. Руководство пользователя: различия между версиями
Материал из Флора AI
Нет описания правки |
Нет описания правки |
||
| (не показано 6 промежуточных версий 3 участников) | |||
| Строка 4: | Строка 4: | ||
===== '''Термины и определения''' ===== | ===== '''Термины и определения''' ===== | ||
Short Phrase Recognizer (SPR) | Short Phrase Recognizer (SPR) — сервис распознавания речи. | ||
Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях. | Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях. | ||
Swagger UI | Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SPR в реальном времени. | ||
| Строка 17: | Строка 17: | ||
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок <code>"accept: application/json"</code> | Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок <code>"accept: application/json"</code> | ||
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс | Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки. | ||
{| class="wikitable" style="width: 110%" | {| class="wikitable" style="width: 110%" | ||
| Строка 25: | Строка 25: | ||
! colspan="3" |<small>Вывод списка моделей.</small> | ! colspan="3" |<small>Вывод списка моделей.</small> | ||
|- | |- | ||
| colspan="3" |<small>Без входных параметров</small> | | colspan="3" |<small>Без входных параметров.</small> | ||
|<small><code>{ models: [model1,...,modelN] }</code></small> | |<small><code>{ models: [model1,...,modelN] }</code></small> | ||
|- | |- | ||
| Строка 31: | Строка 31: | ||
! colspan="3" |<small>Получение файла аудиозаписи отложенного задания.</small> | ! colspan="3" |<small>Получение файла аудиозаписи отложенного задания.</small> | ||
|- | |- | ||
| colspan="3" |<small> | | colspan="3" |<small>taskID — идентификатор задания.</small> | ||
|<small>Файл аудиозаписи или</small> <small><code>{ error: INT , message: DESCRIPTION }</code></small> | |<small>Файл аудиозаписи или</small> <small><code>{ error: INT , message: DESCRIPTION }</code></small> | ||
|- | |- | ||
| Строка 37: | Строка 37: | ||
! colspan="3" |<small>Получение архива модели.</small> | ! colspan="3" |<small>Получение архива модели.</small> | ||
|- | |- | ||
| colspan="3" |<small> | | colspan="3" |<small>id — идентификатор модели.</small> | ||
|<small>ZIP-файл с моделью, либо <code>{ error: INT , message: DESCRIPTION }</code></small> | |<small>ZIP-файл с моделью, либо <code>{ error: INT , message: DESCRIPTION }</code></small> | ||
|- | |- | ||
| Строка 43: | Строка 43: | ||
! colspan="3" |<small>Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.</small> | ! colspan="3" |<small>Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.</small> | ||
|- | |- | ||
| colspan="3" | | | colspan="3" |<small>id — идентификатор модели, обязательный параметр.</small> | ||
<small>zip-model — zip-архив с файлами модели.</small> | |||
<small>Или</small> | |||
<small>from-existing-model — название модели, которая должна перемещена на место id.</small> | |||
|<small><code>{ error: INT, message: DESCRIPTION }</code></small> | |<small><code>{ error: INT, message: DESCRIPTION }</code></small> | ||
|- | |- | ||
| Строка 55: | Строка 54: | ||
! colspan="3" |<small>Удаление модели.</small> | ! colspan="3" |<small>Удаление модели.</small> | ||
|- | |- | ||
| colspan="3" |<small>id | | colspan="3" |<small>id — идентификатор модели.</small> | ||
|<small><code>{ error: INT, message: DESCRIPTION }</code></small> | |<small><code>{ error: INT, message: DESCRIPTION }</code></small> | ||
|- | |- | ||
| Строка 61: | Строка 60: | ||
! colspan="3" |<small>Получение очереди отложенных заданий на распознавание.</small> | ! colspan="3" |<small>Получение очереди отложенных заданий на распознавание.</small> | ||
|- | |- | ||
| colspan="3" |<small>Без входных параметров</small> | | colspan="3" |<small>Без входных параметров.</small> | ||
|<small><code>{</code></small> | |<small><code>{</code></small> | ||
| Строка 81: | Строка 80: | ||
! colspan="3" |<small>Удаление отложенных заданий на распознавание.</small> | ! colspan="3" |<small>Удаление отложенных заданий на распознавание.</small> | ||
|- | |- | ||
| colspan="3" |<small>taskID | | colspan="3" |<small>taskID — идентификатор задания в очереди.</small> | ||
|<small><code>{</code></small> | |<small><code>{</code></small> | ||
| Строка 91: | Строка 90: | ||
|- | |- | ||
!style="color:green;width: 15%"|'''POST:/spr/stt/{id}''' | !style="color:green;width: 15%"|'''POST:/spr/stt/{id}''' | ||
! colspan="3" |<small>Отправка файла на распознавание речи. Моно-файлы до | ! colspan="3" |<small>Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].</small> | ||
|- | |- | ||
| colspan="3" style="width: 50%" | | | colspan="3" style="width: 50%" | | ||
* <small>'''id''' | * <small>'''id''' — идентификатор модели</small> | ||
* <small>'''wav''' — файл для распознавания</small> | |||
* <small>'''wav''' | * <small>'''speakers''' — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)</small> | ||
* <small>'''punctuation''' — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).</small> | |||
* <small>'''speakers''' | * <small>'''normalization''' — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).</small> | ||
* <small>'''vad''' — используемый VAD, по умолчанию webrtc</small> | |||
* <small>'''toxicity''' — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).</small><small>Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:</small><small>"оскорбление": 0.13,</small> <small>"непристойность": 0,</small> <small>"угроза": 0,</small> <small>"вежливость": 0.53</small> | |||
* <small>'''emotion''' — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.</small> | |||
* <small>'''voice_analyzer''' — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.</small><small>Аудио говорящего анализируется на возраст (child, adult, old).</small><small>Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE).</small> <small>Пол (male, female).</small> | |||
* <small>'''speaker_counter''' — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.</small> | |||
* <small>'''async''' — отложенный запуск распознавания</small> | |||
* <small>'''classifiers'''<nowiki> - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {"smс":"название модели":{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам </nowiki>[[SMC. Руководство пользователя|smc]] и [[SEE. Руководство пользователя|see]].</small> | |||
<small> | |||
<small>Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:</small> | |||
<small>"оскорбление": 0.13,</small> | |||
<small>"непристойность": 0,</small> | |||
<small>"угроза": 0,</small> | |||
<small>"вежливость": 0.53</small> | |||
<small> | |||
<small> | |||
<small> | |||
| style="width: 50%" |<small>В случае '''async=1''' возвращается только '''taskID''', результат по taskID смотреть в методе /spr/result.</small> | | style="width: 50%" |<small>В случае '''async=1''' возвращается только '''taskID''', результат по taskID смотреть в методе /spr/result.</small> | ||
<small>'''Для коротких файлов''':</small> | <small>'''Для коротких файлов''':</small> | ||
| Строка 152: | Строка 113: | ||
<small><code> "model": "call",</code></small> | <small><code> "model": "call",</code></small> | ||
<small><code> "text": "текст | <small><code> "text": "текст фрагмента",</code></small> | ||
<code><small>"classifiers": тут ответы от моделей smc и see,</small></code> | |||
<code><small> "words": [</small><small> </small></code> | <code><small> "words": [</small><small> </small></code> | ||
| Строка 233: | Строка 196: | ||
<small><code> "speakerConfidence": 0.87,</code></small> | <small><code> "speakerConfidence": 0.87,</code></small> | ||
<code><small>"classifiers": тут ответы от моделей smc и see,</small></code> | |||
<small><code> "toxicity": { # только для toxicity=1</code></small> | <small><code> "toxicity": { # только для toxicity=1</code></small> | ||
| Строка 267: | Строка 232: | ||
! colspan="3" |<small>Получение результата отложенного распознавания.</small> | ! colspan="3" |<small>Получение результата отложенного распознавания.</small> | ||
|- | |- | ||
| colspan="2" |<small> | | colspan="2" |<small>taskID — идентификатор задания.</small> | ||
| colspan="2" |<small>Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small> | | colspan="2" |<small>Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small><small>ready — готово</small> | ||
<small> | |||
<small> | <small>waiting — ожидание</small> | ||
<small> | <small>not found — не найдена</small> | ||
<small> | <small>failed — сбой.</small> | ||
|- | |- | ||
! style="color:blue;width: 15%"|'''GET:/spr/waveform/{taskID}''' | ! style="color:blue;width: 15%"|'''GET:/spr/waveform/{taskID}''' | ||
! colspan="3" |<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.</small> | ! colspan="3" |<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.</small> | ||
|- | |- | ||
| style="width: 50%" colspan="2" |<small> | | style="width: 50%" colspan="2" |<small>taskID — идентификатор задания.</small> | ||
| colspan="2" |<small><code>{</code></small> | | colspan="2" |<small><code>{</code></small> | ||
Текущая версия от 13:00, 27 августа 2025
Общее описание
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.
Термины и определения
Short Phrase Recognizer (SPR) — сервис распознавания речи.
Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях.
Swagger UI — интерактивная веб-консоль с кратким описанием методов API и возможностью выполнять запросы к сервису SPR в реальном времени.
Описание методов API SPR
Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SPR. По умолчанию используется порт 6183/tcp.
Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"
Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс Swagger со всеми методами с возможностью их проверки.
| GET:/spr/ | Вывод списка моделей. | ||
|---|---|---|---|
| Без входных параметров. | { models: [model1,...,modelN] }
| ||
| GET:/spr/audio/{taskID} | Получение файла аудиозаписи отложенного задания. | ||
| taskID — идентификатор задания. | Файл аудиозаписи или { error: INT , message: DESCRIPTION }
| ||
| GET:/spr/data/{id} | Получение архива модели. | ||
| id — идентификатор модели. | ZIP-файл с моделью, либо { error: INT , message: DESCRIPTION }
| ||
| POST:/spr/data/{id} | Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели. | ||
| id — идентификатор модели, обязательный параметр.
zip-model — zip-архив с файлами модели. Или from-existing-model — название модели, которая должна перемещена на место id. |
{ error: INT, message: DESCRIPTION }
| ||
| DELETE:/spr/data/{id} | Удаление модели. | ||
| id — идентификатор модели. | { error: INT, message: DESCRIPTION }
| ||
| GET:/spr/queue | Получение очереди отложенных заданий на распознавание. | ||
| Без входных параметров. | {
| ||
| DELETE:/spr/queue/{taskID} | Удаление отложенных заданий на распознавание. | ||
| taskID — идентификатор задания в очереди. | {
| ||
| POST:/spr/stt/{id} | Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора. | ||
|
В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.
Для коротких файлов:
Для транскрибации больших файлов:
| ||
| GET:/spr/result/{taskID} | Получение результата отложенного распознавания. | ||
| taskID — идентификатор задания. | Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:ready — готово
waiting — ожидание not found — не найдена failed — сбой. | ||
| GET:/spr/waveform/{taskID} | Служебный метод для отображения аудио в графическом виде, содержит пики сигнала. | ||
| taskID — идентификатор задания. | {
| ||