Действия

SPR. Руководство пользователя: различия между версиями

Материал из Флора AI

Строка 21: Строка 21:
{| class="wikitable"
{| class="wikitable"
|+
|+
!Метод
!<small>Метод</small>
!Тип
!<small>Тип</small>
!Описание
!<small>Описание</small>
!Входные параметры
!<small>Входные параметры</small>
!Ответ
!<small>Ответ</small>
|-
|-
|/spr/
|<small>/spr/</small>
|GET
|<small>GET</small>
|Вывод списка моделей
|<small>Вывод списка моделей</small>
| -
| <small>-</small>
|<code>{ models: [model1,...,modelN] }</code>
|<code><small>{ models: [model1,...,modelN] }</small></code>
|-
|-
|/spr/audio/{taskID}
|<small>/spr/audio/{taskID}</small>
|GET
|<small>GET</small>
|получение файла аудиозаписи отложенного задания
|<small>получение файла аудиозаписи отложенного задания</small>
|taskID - идентификатор задания
|<small>taskID - идентификатор задания</small>
|<code>Файл аудиозаписи или { error: INT , message: DESCRIPTION }</code>
|<code><small>Файл аудиозаписи или { error: INT , message: DESCRIPTION }</small></code>
|-
|-
|/spr/data/{id}
|<small>/spr/data/{id}</small>
|GET
|<small>GET</small>
|Получение архива модели
|<small>Получение архива модели</small>
|'''id''' - идентификатор модели
|<small>'''id''' - идентификатор модели</small>
|<code>ZIP-файл с моделью, либо { error: INT , message: DESCRIPTION }</code>
|<code><small>ZIP-файл с моделью, либо { error: INT , message: DESCRIPTION }</small></code>
|-
|-
|/spr/data/{id}
|<small>/spr/data/{id}</small>
|POST
|<small>POST</small>
|Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели, если указана переменная '''from-existing-model'''. В данном случае происходит переименование модели на сервере '''from-existing-model -> id.'''
|<small>Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели, если указана переменная '''from-existing-model'''. В данном случае происходит переименование модели на сервере '''from-existing-model -> id.'''</small>
|'''id''' - идентификатор модели
|<small>'''id''' - идентификатор модели</small>
'''zip-model''' - zip-архив с файлами модели
<small>'''zip-model''' - zip-архив с файлами модели
'''from-existing-model''' - название модели, которое до
'''from-existing-model''' - название модели, которое до</small>
|<code>{ error: INT, message: DESCRIPTION }</code>
|<code><small>{ error: INT, message: DESCRIPTION }</small></code>
|-
|-
|/spr/data/{id}
|<small>/spr/data/{id}</small>
|DELETE
|<small>DELETE</small>
|Удаление модели
|<small>Удаление модели</small>
|id - идентификатор модели
|<small>id - идентификатор модели</small>
|<code>{ error: INT, message: DESCRIPTION }</code>
|<code><small>{ error: INT, message: DESCRIPTION }</small></code>
|-
|-
|/spr/queue
|<small>/spr/queue</small>
|GET
|<small>GET</small>
|Получение очереди отложенных заданий на распознавание
|<small>Получение очереди отложенных заданий на распознавание</small>
| -
| <small>-</small>
|<code>{
|<code><small>{
   "id задания": {
   "id задания": {
     "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",
     "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",
Строка 69: Строка 69:
     "filename": "wav"
     "filename": "wav"
   }
   }
</small>


}</code>   
<small>}</code>   
Статусы  
Статусы</small>


'''ready''' - готово  
<small>'''ready''' - готово</small>


'''waiting''' - ожидание  
<small>'''waiting''' - ожидание</small>
 
'''failed''' - сбой


<small>'''failed''' - сбой</small>
|-
|<small>/spr/queue/{taskID}</small>
|<small>DELETE</small>
|<small>Удаление отложенных заданий на распознавание</small>
|<small>taskID - идентификатор задания в очереди</small>
|{
"error": 0,
"message": "success"
}
|-
|-
|/spr/stt/{id}
|<small>/spr/stt/{id}</small>
|POST
|<small>POST</small>
|Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]]. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). normalization=1 для обратной нормализации текста.
|<small>Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]]. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). normalization=1 для обратной нормализации текста.</small>
|'''id''' - идентификатор модели
|<small>'''id''' - идентификатор модели</small>
'''wav''' - файл для распознавания
<small>'''wav''' - файл для распознавания</small>


'''speakers''' - опция разделения по говорящим
<small>'''speakers''' - опция разделения по говорящим</small>


'''mono''' - для сведения стереозаписей аналитики в один канал и исключения дублирования распознавания в одинаковых каналах
<small>'''mono''' - для сведения стереозаписей аналитики в один канал и исключения дублирования распознавания в одинаковых каналах</small>


'''punctuation''' - опция для расставления знаков препинания
<small>'''punctuation''' - опция для расставления знаков препинания</small>


'''normalization''' - опция обратной нормализации текста
<small>'''normalization''' - опция обратной нормализации текста</small>


'''vad''' - используемый VAD
<small>'''vad''' - используемый VAD</small>


'''preset''' - используемая модель для vad = neuro
<small>'''preset''' - используемая модель для vad = neuro</small>


'''async''' - отложенный запуск распознавания
<small>'''async''' - отложенный запуск распознавания</small>
|в случае '''async'''=1 возвращается только taskID, для метода /spr/result.
|<small>в случае '''async'''=1 возвращается только taskID, для метода /spr/result.</small>
'''text''' заполняется только для файлов менее 60 секунд. '''speakers, speaker, confidence''' (вероятность правильности определения говорящего) возвращаются только при отправке speakers=1.
<small>'''text''' заполняется только для файлов менее 60 секунд. '''speakers, speaker, confidence''' (вероятность правильности определения говорящего) возвращаются только при отправке speakers=1.
<code>{</code>
<code>{</code>
<code>model: модель, text: текст без разбивки,</code>
<code>model: модель, text: текст без разбивки,</code>
Строка 121: Строка 130:
<code>text: распознанный текст},  ...</code>
<code>text: распознанный текст},  ...</code>
<code>]</code>
<code>]</code>
<code>}</code>
<code>}</code></small>
|-
|-
|/spr/result/{taskID}
|<small>/spr/result/{taskID}</small>
|GET
|<small>GET</small>
|Получение результата отложенного распознавания
|<small>Получение результата отложенного распознавания</small>
|'''taskID''' - идентификатор задания
|<small>'''taskID''' - идентификатор задания</small>
|Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:
|<small>Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small>
'''ready''' - готово
<small>'''ready''' - готово
'''waiting''' - ожидание
'''waiting''' - ожидание
'''not found''' - не найдена
'''not found''' - не найдена
'''failed''' - сбой
'''failed''' - сбой</small>
|-
|-
|/spr/waveform/{taskID}
|<small>/spr/waveform/{taskID}</small>
|GET
|<small>GET</small>
|Служебный метод для отображения аудио в графическом виде, содержит пики сигнала
|<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала</small>
|'''taskID''' - идентификатор задания
|<small>'''taskID''' - идентификатор задания</small>
|{
|<small>{</small>
   "error": 0,
   <small>"error": 0,
   "waveform": [
   "waveform": [
     0.016,
     0.016,
Строка 145: Строка 154:
     0.015,
     0.015,
     0.01
     0.01
   ]
   ]</small>
}
<small>}</small>
|}
|}

Версия от 16:20, 27 апреля 2024

Общее описание

Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.


Термины и определения

Short Phrase Recognizer (SPR) - сервис распознавания речи.

Модель — предварительно обученная специализированная нейронная сеть для распознавания естественной речи в аудиозаписях.

Swagger UI – интерактивная веб-консоль с кратким описанием методов АPI и возможностью выполнять запросы к сервису SPR в реальном времени

 

Описание методов API SPR

Запросы осуществляются по протоколу HTTP 1.1 на адрес сервера с доступным сервисом SPR. По умолчанию используется порт 6183/tcp.

Авторизация запросов не требуется. HTTP-запросы должны содержать заголовок "accept: application/json"

Ответ сервиса представляет собой JSON-документ в кодировке UTF-8 или двоичный файл. Содержимое документа зависит от результата выполнения запроса. При наличии ошибки в качестве ответа вернется переменная error=1 и описание в переменной message. Для удобства проверки методов по ссылке http://АДРЕС:6183 будет отображен интерфейс swagger со всеми методами с возможностью их проверки.

Метод Тип Описание Входные параметры Ответ
/spr/ GET Вывод списка моделей - { models: [model1,...,modelN] }
/spr/audio/{taskID} GET получение файла аудиозаписи отложенного задания taskID - идентификатор задания Файл аудиозаписи или { error: INT , message: DESCRIPTION }
/spr/data/{id} GET Получение архива модели id - идентификатор модели ZIP-файл с моделью, либо { error: INT , message: DESCRIPTION }
/spr/data/{id} POST Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели, если указана переменная from-existing-model. В данном случае происходит переименование модели на сервере from-existing-model -> id. id - идентификатор модели

zip-model - zip-архив с файлами модели from-existing-model - название модели, которое до

{ error: INT, message: DESCRIPTION }
/spr/data/{id} DELETE Удаление модели id - идентификатор модели { error: INT, message: DESCRIPTION }
/spr/queue GET Получение очереди отложенных заданий на распознавание - {
  "id задания": {
   "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",
   "status": "waiting",
   "filename": "wav"
 }

} Статусы

ready - готово

waiting - ожидание

failed - сбой

/spr/queue/{taskID} DELETE Удаление отложенных заданий на распознавание taskID - идентификатор задания в очереди {

"error": 0, "message": "success" }

/spr/stt/{id} POST Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора. В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). normalization=1 для обратной нормализации текста. id - идентификатор модели

wav - файл для распознавания

speakers - опция разделения по говорящим

mono - для сведения стереозаписей аналитики в один канал и исключения дублирования распознавания в одинаковых каналах

punctuation - опция для расставления знаков препинания

normalization - опция обратной нормализации текста

vad - используемый VAD

preset - используемая модель для vad = neuro

async - отложенный запуск распознавания

в случае async=1 возвращается только taskID, для метода /spr/result.

text заполняется только для файлов менее 60 секунд. speakers, speaker, confidence (вероятность правильности определения говорящего) возвращаются только при отправке speakers=1. { model: модель, text: текст без разбивки, speakers: [ { gender: пол, age: возраст, emotion: эмоция, id: идентификатор }, ... ], splitted": [ { start: "00:00:02.255", stop: "00:00:10.995", channel: канал в файле, duration: 00:00:08.740, start_ms: 2255, stop_ms: 10995, duration_ms: 8740, speaker: индекс говорящего, confidence: 0.9541002174024272, text: распознанный текст}, ... ] }

/spr/result/{taskID} GET Получение результата отложенного распознавания taskID - идентификатор задания Вывод аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:

ready - готово waiting - ожидание not found - не найдена failed - сбой

/spr/waveform/{taskID} GET Служебный метод для отображения аудио в графическом виде, содержит пики сигнала taskID - идентификатор задания {
 "error": 0,
 "waveform": [
   0.016,
  ..........
  ..........
   0.015,
   0.01
 ]

}