Действия

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

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

Нет описания правки
 
(не показаны 23 промежуточные версии 3 участников)
Строка 1: Строка 1:
===== '''Общее описание''' =====
===== '''Общее описание''' =====
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.
Сервис Short phrase recognizer предназначен для преобразования речи в текст. Принимает на вход аудиофайл в формате wav и возвращает структурированные данные в формате JSON.




===== '''Термины и определения''' =====
===== '''Термины и определения''' =====
Short Phrase Recognizer (SPR) - сервис распознавания речи.
Short Phrase Recognizer (SPR) сервис распознавания речи.


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


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


{| class="wikitable"
{| class="wikitable" style="width: 110%"
|+
|+
|-
|-
!'''GET:/spr/'''
! style="color:blue;width: 15%"|'''GET:/spr/'''
! colspan="2" |<small>Вывод списка моделей</small>
! colspan="3" |<small>Вывод списка моделей.</small>
|-
|-
| colspan="2" |<small>нет входных параметров</small>
| colspan="3" |<small>Без входных параметров.</small>
|<small>{ models: [model1,...,modelN] }</small>
|<small><code>{ models: [model1,...,modelN] }</code></small>
|-
|-
!'''GET:/spr/audio/{taskID}'''
! style="color:blue;width: 15%"|'''GET:/spr/audio/{taskID}'''
! colspan="2" |<small>Получение файла аудиозаписи отложенного задания</small>
! colspan="3" |<small>Получение файла аудиозаписи отложенного задания.</small>
|-
|-
| colspan="2" |<small>'''taskID''' - идентификатор задания</small>
| colspan="3" |<small>taskID идентификатор задания.</small>
|<small>Файл аудиозаписи или</small> <small>{ error: INT , message: DESCRIPTION }</small>
|<small>Файл аудиозаписи или</small> <small><code>{ error: INT , message: DESCRIPTION }</code></small>
|-
|-
!'''GET:/spr/data/{id}'''
! style="color:blue;width: 15%"|'''GET:/spr/data/{id}'''
! colspan="2" |<small>Получение архива модели</small>
! colspan="3" |<small>Получение архива модели.</small>
|-
|-
| colspan="2" |<small>'''id''' - идентификатор модели</small>
| colspan="3" |<small>id идентификатор модели.</small>
|<small>ZIP-файл с моделью, либо { error: INT , message: DESCRIPTION }</small>
|<small>ZIP-файл с моделью, либо <code>{ error: INT , message: DESCRIPTION }</code></small>
|-
|-
!'''POST:/spr/data/{id}'''
!style="color:green;width: 15%"|'''POST:/spr/data/{id}'''
! colspan="2" |<small>Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.</small>
! colspan="3" |<small>Добавление модели. Может быть добавлена как из файла архива, так и переименованием существующей модели.</small>
|-
|-
| colspan="2" |'''<small>id</small>''' <small>- идентификатор модели, обязательный параметр.</small>
| colspan="3" |<small>id — идентификатор модели, обязательный параметр.</small>
<small>zip-model — zip-архив с файлами модели.</small>


'''<small>zip-model</small>''' <small>- zip-архив с файлами модели</small>
<small>Или</small>


<small>или</small>
<small>from-existing-model название модели, которая должна перемещена на место id.</small>
 
|<small><code>{ error: INT, message: DESCRIPTION }</code></small>
'''<small>from-existing-model</small>''' <small>- название модели, которая должна перемещена на место '''id'''</small>
|<small>{ error: INT, message: DESCRIPTION }</small>
|-
|-
!<small>'''DELETE'''</small>''':<small>/spr/data/{id}</small>'''
!style="color:red;width: 15%"|'''DELETE:/spr/data/{id}'''
! colspan="2" |<small>Удаление модели</small>  
! colspan="3" |<small>Удаление модели.</small>
|-
|-
| colspan="2" |<small>id - идентификатор модели</small>
| colspan="3" |<small>id идентификатор модели.</small>
|<small>{ error: INT, message: DESCRIPTION }</small>
|<small><code>{ error: INT, message: DESCRIPTION }</code></small>
|-
|-
!'''GET:/spr/queue'''
! style="color:blue;width: 15%"|'''GET:/spr/queue'''
! colspan="2" |<small>Получение очереди отложенных заданий на распознавание</small>
! colspan="3" |<small>Получение очереди отложенных заданий на распознавание.</small>
|-
|-
| colspan="2" |<small>Без входных параметров</small>
| colspan="3" |<small>Без входных параметров.</small>
|{
|<small><code>{</code></small>


  "id задания": {
<small><code>"id задания":</code></small>


   "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",
<small><code>{</code></small>


   "status": "waiting",
<small><code>      "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",</code></small>


   "filename": "wav"
<small><code>      "status": "waiting", # ready | waiting | failed</code></small>


}
<small><code>     "filename": "wav"</code></small>


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


ready - готово
<small><code>}</code></small>
 
waiting - ожидание
 
failed - сбой
|-
|-
!'''DELETE:/spr/queue/{taskID}'''
!style="color:red;width: 15%"|'''DELETE:/spr/queue/{taskID}'''
! colspan="2" |<small>Удаление отложенных заданий на распознавание</small>
! colspan="3" |<small>Удаление отложенных заданий на распознавание.</small>
|-
|-
| colspan="2" |<small>taskID - идентификатор задания в очереди</small>
| colspan="3" |<small>taskID идентификатор задания в очереди.</small>
|{
|<small><code>{</code></small>


"error": 0,
<small><code>"error": 0,</code></small>


"message": "success"
<small><code>"message": "success"</code></small>


}
<small><code>}</code></small>
|-
|-
!'''POST:/spr/stt/{id}'''
!style="color:green;width: 15%"|'''POST:/spr/stt/{id}'''
! colspan="2" |<small>Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].</small>  
! colspan="3" |<small>Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в [[SPR. Руководство администратора.|руководстве администратора]].</small>
|-
|-
| colspan="2" style="width: 50%" |
| colspan="3" style="width: 50%" |
* <small>'''id''' - идентификатор модели</small>
* <small>'''id''' — идентификатор модели</small>
* <small>'''wav''' — файл для распознавания</small>
* <small>'''speakers''' — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)</small>
* <small>'''punctuation''' — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).</small>
* <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>'''denoise''' - уровень шумоподавления</small>
| style="width: 50%" |<small>В случае '''async=1''' возвращается только '''taskID''', результат по taskID смотреть в методе /spr/result.</small>
 
<small>'''Для коротких файлов''':</small>
* <small>'''wav''' - файл для распознавания</small>


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


* <small>'''punctuation''' - опция для расставления знаков препинания</small>
<small><code>  "model": "call",</code></small>


* <small>'''normalization''' - опция обратной нормализации текста</small>
<small><code>  "text": "текст фрагмента",</code></small>


* <small>'''vad''' - используемый VAD, по умолчанию webrtc</small>
<code><small>"classifiers": тут ответы от моделей smc и see,</small></code>


* <small>'''preset''' - используемая модель для vad = neuro</small>
<code><small>  "words": [</small><small> </small></code>


* <small>'''toxicity''' - анализировать распознанный текст на токсичность</small>
<code><small>{</small><small> "word": "текст",</small></code>


* <small>'''emotion''' - выявить эмоции из распознанного текста</small>
<small><code>      "start": 520,</code></small>


* <small>'''voice_analyzer''' - анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол</small>
<code><small>      "stop": 1240</small><small> },</small></code>


* <small>'''speaker_counter''' - количество докладчиков, по умолчанию - 0, автоматическое определение количества</small>
<code><small>    {</small><small> "word": "фрагмента",</small></code>


* <small>'''async''' - отложенный_запуск_распознавания</small>
<small><code>      "start": 1240,</code></small>


<code><small>      "stop": 1920</small><small>  }</small></code>


<code><small>]</small></code>


<small>В случае отправки переменной '''speakers=1''', дополнительно производится поиск говорящих и получение метаданных по каждому говорящему. (используется сервис sbs с предварительно обученными слепками метаданных говорящих) В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC, и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файлы конфигурации). normalization=1 для обратной нормализации текста.</small> <small>В случае использования модели big параметры punctuation и normalization игнорируются - модель всегда расставляет знаки препинания и нормализует текст.</small>
<code><small>}</small></code>


<small>'''Для транскрибации больших файлов:'''</small>


<small><code>{</code></small>


<small>При установке параметра '''toxicity''' запрашивается в smc метод GET/smc/toxicity</small>
<small><code>"speakers": [</code></small>


<small>Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:</small>
<small><code>    { </code></small>


<small>"оскорбление": 0.13,</small>
<small><code>"id": null,</code></small>


<small>"непристойность": 0,</small>
<small><code>      "duration": 18980,</code></small>


<small>"угроза": 0,</small>
<small><code>      "fragments": 3,</code></small>


<small>"вежливость": 0.53</small>
<small><code>      "age": "old", # только для voice_analyzer=1</code></small>


<small><code>      "gender": "female" # только для voice_analyzer=1</code></small>


<small>При установке параметра '''emotion''' запрашивается в smc метод GET/smc/emotion</small>
<small><code>}</code></small>


<small>Высказывание анализируется на эмоциональность (negative, neutral, positive)</small>
<small><code>],</code></small>


<small><code>"splitted": [</code></small>


<small>При установке параметра '''voice_analyzer''' запрашивается в sbs метод POST/sbs/analyze.</small>
<small><code>    {</code></small>


<small>Аудио говорящего анализируется на возраст (child adult old)</small>  
<small><code>"start": "00:00:01.870",</code></small>


<small>эмоции (ANGER BORE DISAPPOINTMENT DISGUST EXCITEMENT FEAR NEUTRAL PAIN PLEASURE SADNESS SUPRISE)</small>
<small><code>      "text": "текст.",</code></small>


<small>пол (male female)</small>
<small><code>      "words": [</code></small>
| style="width: 50%" |<small>В случае '''async=1''' возвращается только '''taskID''', результат по taskID смотреть в методе /spr/result.</small>
<small>'''Для коротких файлов''':{</small>


<small>  "model": "call",</small>
<small><code     { </code></small>


<small>  "text": "текст фрагментв",</small>
<small><code>"word": "текст.",</code></small>


<small>  "words": [</small>
<small><code>          "start": 1870,</code></small>


<small>    {</small>
<small><code>          "stop": 2710,</code></small>


<small>      "word": "текст",</small>
<small><code>          "confidence": 0.95263671875</code></small>


<small>      "start": 520,</small>
<small><code>}</code></small>


<small>      "stop": 1240</small>
<small><code>],</code></small>


<small>    },</small>
<small><code>      "stop": "00:00:05.510",</code></small>


<small>    {</small>
<small><code>      "channel": 0,</code></small>


<small>      "word": "фрагмента",</small>
<small><code>      "duration": "00:00:03.640",</code></small>


<small>      "start": 1240,</small>
<small><code>      "start_ms": 1870,</code></small>


<small>      "stop": 1920</small>
<small><code>      "stop_ms": 5510,</code></small>


<small>    } ]</small>
<small><code>      "duration_ms": 3640,</code></small>


<small>}</small>
<small><code>      "speaker": 4,</code></small>


<small>'''Для транскрибации больших файлов''' ответ состоит из нескольких списков</small>
<small><code>      "speakerConfidence": 0.87,</code></small>


<small>1) "'''speakers'''": [</small>
<code><small>"classifiers": тут ответы от моделей smc и see,</small></code>


<small>    {</small>
<small><code>      "toxicity": { # только для toxicity=1</code></small>


<small>      "id": null,</small>
<small><code>        "insult": 0,</code></small>


<small>      "duration": 18980,</small>
<small><code>        "obscenity": 0,</code></small>


<small>      "fragments": 3,</small>
<small><code>        "threat": 0,</code></small>


<small>      "age": "old",</small>
<small><code>        "politeness": 0.99</code></small>


<small>      "gender": "female"</small>
<small><code>},</code></small>


<small>    }] - параметры каждого говорящего, если voice_analyzer = 1, то будут отображены предположительные возраст и пол говорящего</small>
<small><code>      "emotion": { "neutral": -0.3315 }, # только для emotion=1</code></small>


<small>2)  "'''splitted'''": [</small>
<small><code>      "voice_analysis": { # только для voice_analyzer=1</code></small>


<small>    {</small>
<small><code>        "emotion": {</code></small>


<small>      "start": "00:00:01.870",</small>
<small><code>          "class": "NEUTRAL",</code></small>


<small>      "text": "текст фрагмента",</small>
<small><code>          "confidence": 0.7554781436920166  } </code></small>


<small>      "words": [</small>
<small><code>}</code></small>


<small>        {</small>
<small><code>}</code></small>


<small>          "word": "текст.",</small>
<small><code>]</code></small>


<small>          "start": 1870,</small>
<small><code>}</code></small>
|-
! style="color:blue;width: 15%"|'''GET:/spr/result/{taskID}'''
! colspan="3" |<small>Получение результата отложенного распознавания.</small>
|-
| colspan="2" |<small>taskID — идентификатор задания.</small>
| colspan="2" |<small>Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small><small>ready — готово</small>


<small>          "stop": 2710,</small>
<small>waiting — ожидание</small>


<small>          "confidence": 0.95263671875</small>
<small>not found — не найдена</small>


<small>        },</small>
<small>failed — сбой.</small>
 
|-
<small>        {</small>
! style="color:blue;width: 15%"|'''GET:/spr/waveform/{taskID}'''
 
! colspan="3" |<small>Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.</small>
<small>          "word": "фрагмента,",</small>
|-
 
|  style="width: 50%" colspan="2" |<small>taskID — идентификатор задания.</small>
<small>          "start": 2730,</small>
| colspan="2" |<small><code>{</code></small>
 
<small>          "stop": 3330,</small>
 
<small>          "confidence": 0.9986572265625</small>
 
<small>        }</small>
 
<small>      ],</small>
 
<small>      "stop": "00:00:05.510",</small>
 
<small>      "channel": 0,</small>
 
<small>      "duration": "00:00:03.640",</small>
 
<small>      "start_ms": 1870,</small>
 
<small>      "stop_ms": 5510,</small>
 
<small>      "duration_ms": 3640,</small>
 
<small>      "speaker": 4,</small>
 
<small>      "speakerConfidence": 0.8699063646965216,</small>
 
<small>      "toxicity": {</small>
 
<small>        "insult": 0,</small>
 
<small>        "obscenity": 0,</small>
 
<small>        "threat": 0,</small>
 
<small>        "politeness": 0.99</small>
 
<small>      },</small>
 
<small>      "emotion": {</small>
 
<small>        "neutral": -0.3315</small>
 
<small>      },</small>
 
<small>      "voice_analysis": {</small>


<small>        "emotion": {</small>
<small><code>"error": 0,</code></small>


<small>          "class": "NEUTRAL",</small>
<small><code>"waveform": [</code></small>


<small>          "confidence": 0.7554781436920166</small>
<small><code>0.016,</code></small>


<small>        }</small>
<small><code>    0.015,</code></small>


<small>      }</small>
<small><code>    0.01</code></small>


<small>    } ] - для каждой фразы отдельно целиком фраза, затем по словам, для каждого слова временные параметры и вероятность. Также при установке соответствующих параметров в 1 будут для каждой фразы выведены toxicity emotion voice_analysis.</small>
<small><code>]</code></small>
|-
!'''GET:/spr/result/{taskID}'''
! colspan="2" |Получение результата отложенного распознавания
|-
| colspan="2" |<small>'''taskID''' - идентификатор задания</small>
|<small>Вывод по окончанию распознавания аналогичен выводу метода stt + добавлено поле status, которое содержит информацию о статусе отложенной задачи:</small>
<small>'''ready''' - готово</small>


<small>'''waiting''' - ожидание</small>
<small><code>}</code></small>
 
<small>'''not found''' - не найдена</small>
 
<small>'''failed''' - сбой</small>
|-
!'''GET:/spr/waveform/{taskID}'''
!Служебный метод для отображения аудио в графическом виде, содержит пики сигнала
!
|}
|}

Текущая версия от 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 Получение очереди отложенных заданий на распознавание.
Без входных параметров. {

"id задания":

{

    "created": "ХХХХ-ХХ-ХХ ХХ:ХХ:ХХ",

    "status": "waiting", # ready | waiting | failed

    "filename": "wav"

}

}

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

"error": 0,

"message": "success"

}

POST:/spr/stt/{id} Отправка файла на распознавание речи. Моно-файлы до 60 секунд распознаются без разбивки на фрагменты и определения спикеров. Многоканальные файлы и файлы длиннее 60 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора.
  • id — идентификатор модели
  • wav — файл для распознавания
  • speakers — опция поиска говорящих по базе SBS. Если 1, то дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих)
  • punctuation — опция для расстановки знаков препинания. Если 1, то дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте, значение по умолчанию берётся из файла конфигурации (для модели big пунктуация выполняется в любом случае).
  • normalization — опция обратной нормализации текста, если 1, то выполняется обратная нормализация текста текста (для модели big выполняется в любом случае).
  • vad — используемый VAD, по умолчанию webrtc
  • toxicity — анализировать распознанный текст на токсичность через smc (GET/smc/toxicity).Высказывание анализируется по 4 параметрам, по каждому выдается вероятность от 0 до 1:"оскорбление": 0.13, "непристойность": 0, "угроза": 0, "вежливость": 0.53
  • emotion — выявить эмоции из распознанного текста через smc (GET/smc/emotion). Возможные ответы: negative, neutral, positive.
  • voice_analyzer — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол, запрашивается в sbs метод POST/sbs/analyze.Аудио говорящего анализируется на возраст (child, adult, old).Эмоции (ANGER, BORE, DISAPPOINTMENT, DISGUST, EXCITEMENT, FEAR, NEUTRAL, PAIN, PLEASURE, SADNESS, SUPRISE). Пол (male, female).
  • speaker_counter — количество докладчиков, по умолчанию 0, автоматическое определение количества. При отправке значения -1 разделение на докладчиков будет отключено.
  • async — отложенный запуск распознавания
  • classifiers - дополнительно проанализировать все распознанные фразы через модели smc и/или see. отправляется в виде {"smс":"название модели":{ параметры запроса }}. Подробнее о параметрах запроса см. в документации по сервисам smc и see.
В случае async=1 возвращается только taskID, результат по taskID смотреть в методе /spr/result.

Для коротких файлов:

{

  "model": "call",

  "text": "текст фрагмента",

"classifiers": тут ответы от моделей smc и see,

  "words": [ 

{ "word": "текст",

      "start": 520,

      "stop": 1240 },

    { "word": "фрагмента",

      "start": 1240,

      "stop": 1920  }

]

}

Для транскрибации больших файлов:

{

"speakers": [

    { 

"id": null,

      "duration": 18980,

      "fragments": 3,

      "age": "old", # только для voice_analyzer=1

      "gender": "female" # только для voice_analyzer=1

}

],

"splitted": [

    {

"start": "00:00:01.870",

      "text": "текст.",

      "words": [

      { 

"word": "текст.",

          "start": 1870,

          "stop": 2710,

          "confidence": 0.95263671875

}

],

      "stop": "00:00:05.510",

      "channel": 0,

      "duration": "00:00:03.640",

      "start_ms": 1870,

      "stop_ms": 5510,

      "duration_ms": 3640,

      "speaker": 4,

      "speakerConfidence": 0.87,

"classifiers": тут ответы от моделей smc и see,

      "toxicity": { # только для toxicity=1

        "insult": 0,

        "obscenity": 0,

        "threat": 0,

        "politeness": 0.99

},

      "emotion": { "neutral": -0.3315 }, # только для emotion=1

      "voice_analysis": { # только для voice_analyzer=1

        "emotion": {

          "class": "NEUTRAL",

          "confidence": 0.7554781436920166  } 

}

}

]

}

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

waiting — ожидание

not found — не найдена

failed — сбой.

GET:/spr/waveform/{taskID} Служебный метод для отображения аудио в графическом виде, содержит пики сигнала.
taskID — идентификатор задания. {

"error": 0,

"waveform": [

0.016,

    0.015,

    0.01

]

}