Действия

SPR. Руководство пользователя

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

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

Сервис 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} Отправка файла на распознавание речи. Моно-файлы до 30 секунд распознаются без разбивки на фрагменты. Многоканальные файлы и файлы длиннее 30 секунд предварительно разбиваются на фрагменты по отсутствию речи. Настройка данных параметров описана в руководстве администратора.
  • id — идентификатор модели
  • wav — файл для распознавания
  • speakers — опция поиска говорящих по базе SBS
  • punctuation — опция для расстановки знаков препинания
  • normalization — опция обратной нормализации текста
  • vad — используемый VAD, по умолчанию webrtc
  • toxicity — анализировать распознанный текст на токсичность
  • emotion — выявить эмоции из распознанного текста
  • voice_analyzer — анализировать аудиофрагменты каждого из говорящих на эмоции, возраст и пол
  • speaker_counter — количество докладчиков, по умолчанию 0, автоматическое определение количества
  • async — отложенный запуск распознавания.



В случае отправки переменной speakers=1, дополнительно производится поиск говорящих и получение метаданных по каждому говорящему (используется сервис SBS с предварительно обученными слепками метаданных говорящих). В случае отправки переменной punctuation=1, дополнительно вызывает метод punctuate в SMC и расставляет знаки препинания в распознанном тексте (значение по умолчанию берётся из файла конфигурации). normalization=1 для обратной нормализации текста. В случае использования модели BIG параметры punctuation и normalization игнорируются — модель всегда расставляет знаки препинания и нормализует текст.

При установке параметра 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).

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

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

{

  "model": "call",

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

  "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,

      "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

]

}