GetSpeechAnalytic

Метод GetSpeechAnalytic

Примените метод GetSpeechAnalytic для получения результата речевой аналитики звонка. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже.

Точка подключения:

POST: https://api.exolve.ru/statistics/call-record/v1/GetSpeechAnalytic

Авторизация

Передайте следующие Заголовки HTTP для успешной авторизации.

Имя Тип Описание
Authorization string API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения

Входные параметры

Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.

Параметр Тип Описание
call_id uint64 идентификатор звонка

Выходные параметры

Параметр Тип Описание
speech_analytics Array SpeechAnalytics результат речевой аналитики звонка

SpeechAnalytics

Параметр Тип Описание
url string URL-адрес для отправки результата речевой аналитики
call_id uint64 идентификатор звонка
application_uuid string идентификатор приложения, с/на номера которого был совершён звонок
date_time string дата и время готовности речевой аналитики
from string номер звонящего абонента
to string номер принимающего вызов абонента
start_time string дата и время начала звонка
end_time string дата и время окончания звонка
conversation_statistics Array ConversationStatistics общая статистика проанализированного разговора
interrupts_statistics Array InterruptsStatistics статистика перебиваний в разговоре
silence_statistics Array SilenceStatistics статистика молчания в разговоре
speech_statistics Array SpeechStatistics статистика речи в разговоре
conversation_summary Array ConversationSummary резюме разговора, автоматически сгенерированное на основе его семантического анализа
classifier_statistics Array ClassifierStatistics статистика применённых тегов
transcription Array Transcription текстовая расшифровка разговора

ConversationStatistics

Параметр Тип Описание
speaker_statistics Array SpeakerStatistics статистика разговора с разбивкой по абонентам
SpeakerStatistics
Параметр Тип Описание
channel_tag string канал абонента, где 0 — звонящий, 1 — принимающий вызов
total_speech_duration string общая продолжительность речи абонента
total_silence_duration string общая продолжительность молчания абонента
speech_ratio double соотношение речи
speech_speed Array SpeechSpeed скорость речи абонента
SpeechSpeed
Параметр Тип Описание
min double минимальная скорость речи
max double максимальная скорость речи
avg double средняя скорость речи
std double стандартное отклонение

InterruptsStatistics

Параметр Тип Описание
speaker_interrupts Array SpeakerInterrupt статистика перебиваний с разбивкой по абонентам
SpeakerStatistics
Параметр Тип Описание
channel_tag string канал абонента, где 0 — звонящий, 1 — принимающий вызов
total_interrupts_count int64 общее количество перебиваний абонентом
total_interrupts_duration string общая продолжительность перебиваний абонентом

SilenceStatistics

Параметр Тип Описание
total_simultaneous_silence_duration google.protobuf.Duration общая продолжительность одновременного молчания абонентов
total_simultaneous_silence_ratio double общая продолжительность одновременного молчания абонентов
simultaneous_silence_duration_estimation Array SimultaneousSilenceDurationEstimation общая продолжительность одновременного молчания абонентов
SimultaneousSilenceDurationEstimation
Параметр Тип Описание
min double минимальная продолжительность молчания
max double максимальная продолжительность молчания
avg double средняя продолжительность молчания
std double стандартное отклонение

SpeechStatistics

Параметр Тип Описание
total_simultaneous_speech_duration google.protobuf.Duration общая продолжительность одновременной речи абонентов
total_simultaneous_speech_ratio double общая продолжительность одновременной речи абонентов
simultaneous_speech_duration_estimation Array SimultaneousSpeechDurationEstimation общая продолжительность одновременной речи абонентов
SimultaneousSpeechDurationEstimation
Параметр Тип Описание
min double минимальная продолжительность речи
max double максимальная продолжительность речи
avg double средняя продолжительность речи
std double стандартное отклонение

ConversationSummary

Параметр Тип Описание
quiz Array Quiz резюме разговора
Quiz
Параметр Тип Описание
request string вопрос
response string ответ, автоматически сгенерированный на основе семантического анализа

Резюме диалога состоит из ответов на эти вопросы:

  1. Оператор был вежливым?
  2. Оператор был раздражен?
  3. Оператор был вовлечен в диалог?
  4. Оператор был эмпатичным?
  5. Оператор хамил?
  6. Оператор решил проблему клиента?
  7. Оператор был уверенным?
  8. Клиент ушел раздраженным?
  9. Клиент остался доволен?
  10. Клиент хамил?

Summarization

Параметр Тип Описание
statements Array Statements резюме диалога
summary string общее резюме диалога
operator_keywords string ключевые слова оператора
client_keyword string ключевые слова клиента
problems string проблема звонка
call_results string результат звонка
theme string тема звонка
call_reason string итоги звонка
Statements
Параметр Тип Описание
name string название
response string ответ, автоматически сгенерированный на основе семантического анализа

ClassifierStatistics

Параметр Тип Описание
classification_results Array ClassificationResult применённые теги в разговоре
ClassificationResult
Параметр Тип Описание
classifier string тег
channel_tag string канала абонента, где 0 — звонящий, 1 — принимающий вызов
total_count string общее количество применённых тегов

Тег — группа ключевых слов одной тематики. Сервис автоматически определяет, встречались ли те или иные ключевые фразы в разговоре, и добавляет к нему тег. Например, теги показывают, что оператор поблагодарил клиента за ожидание или что клиент обращается в службу поддержки повторно. Полный перечень тегов указан в этой статье.


Transcription

Параметр Тип Описание
phrases Array Phrase текстовая расшифровка разговора
Phrase
Параметр Тип Описание
channel_tag string канала абонента, где 0 — звонящий, 1 — принимающий вызов
text string текстовая расшифровка разговора
start_time string время начала фразы с применённым тегом
end_time string время окончания фразы с применённым тегом
classifiers Array PhraseClassifier текстовая расшифровка разговора
PhraseClassifier
Параметр Тип Описание
classifier string применённый тэг
highlighted_text string фраза с применённым тэгом

Возможные ошибки

Код Статус Пример сообщения Описание
400 Bad Request proto: syntax error (line 2:18): unexpected token не задано значение в одном из полей
400 Bad Request proto: (line 2:18): invalid google.protobuf.Timestamp value "" невалидное значение в одном из обязательных параметров
401 Unauthorized failed to parse token невалидный API-ключ
401 Unauthorized error while trying to get token from header отсутствует API-ключ
404 Not Found invalid uid or application uuid неверный идентификатор звонка

Примеры

Входные параметры:

{
    "call_id": 7227302459583111000
}

Выходные параметры:

{
  "speech_analytic": {
    "url": "https://example.com",
    "call_id": "7227302459583111000",
    "application_uuid": "80f14680-d069-4aa2-b7b6-e0699231ec17",
    "date_time": "2024-11-08T13:22:40Z",
    "from": "79999999999",
    "to": "79134444444",
    "start_time": "2024-11-08T13:21:39Z",
    "end_time": "2024-11-08T13:22:39Z",
    "conversation_statistics": {
      "speaker_statistics": [
        {
          "channel_tag": "0",
          "total_speech_duration": "19s",
          "total_silence_duration": "19s",
          "speech_ratio": 0.37,
          "speech_speed": {
            "min": 2.65,
            "max": 3.19,
            "avg": 2.87,
            "std": 0.28
          }
        },
        {
          "channel_tag": "1",
          "total_speech_duration": "0.12s",
          "total_silence_duration": "0.12s",
          "speech_ratio": 0.07829268292682927,
          "speech_speed": {
            "min": 2.65,
            "max": 3.19,
            "avg": 2.87,
            "std": 0.28
          }
        },
        {
          "channel_tag": "",
          "total_speech_duration": "0.31s",
          "total_silence_duration": "0.31s",
          "speech_ratio": 0,
          "speech_speed": {
            "min": 1.79,
            "max": 3.19,
            "avg": 2.33,
            "std": 0.27
          }
        }
      ]
    },
    "interrupts_statistics": {
      "speaker_interrupts": [
        {
          "channel_tag": "0",
          "total_interrupts_count": "0",
          "total_interrupts_duration": "0s"
        },
        {
          "channel_tag": "1",
          "total_interrupts_count": "0",
          "total_interrupts_duration": "0s"
        },
        {
          "channel_tag": "",
          "total_interrupts_count": "0",
          "total_interrupts_duration": "0s"
        }
      ]
    },
    "silence_statistics": {
      "total_simultaneous_silence_duration": "0.7s",
      "total_simultaneous_silence_ratio": 0.86,
      "simultaneous_silence_duration_estimation": {
        "min": 0.4,
        "max": 1.23,
        "avg": 0.9,
        "std": 0.8
      }
    },
    "speech_statistics": {
      "total_simultaneous_speech_duration": "11s",
      "total_simultaneous_speech_ratio": 0,
      "simultaneous_speech_duration_estimation": {
        "min": 120,
        "max": 5819,
        "avg": 2369.8,
        "std": 2250.83
      }
    },
    "conversation_summary": {
      "quiz": [
        {
          "request": "1. Оператор был вежливым?",
          "response": "1. Да"
        },
        {
          "request": "2. Оператор был раздражен?",
          "response": "2. Нет"
        },
        {
          "request": "3. Оператор был вовлечен в диалог?",
          "response": "3. Нет"
          }
      ]
    },
    "summarization": {
      "statements": [
        {
          "name": "summary",
          "response": "Клиент и оператор не слышали друг друга из-за плохой связи"
        },
        {
          "name": "operator_keywords",
          "response": "договорились"
        },
        {
          "name": "client_keywords",
          "response": "алло", "не слышу"
        },
        {
          "name": "problems",
          "response": "плохая слышимость"
        },
        {
          "name": "call_results",
          "response": "договорились"
        },
        {
          "name": "call_reason",
          "response": "договорились"
        },
        {
          "name": "theme ",
          "response": "заказ"
        }
    ]
  },
    "classifier_statistics": {
      "classification_results": [
        {
          "classifier": "Эскалация обращения",
          "channel_tag": "0",
          "total_count": "2"
        },
        {
          "classifier": "Эскалация обращения",
          "channel_tag": "1",
          "total_count": "0"
        },
        {
        "classifier": "Эскалация обращения",
        "channel_tag": "",
        "total_count": "0"
        },
          ]
        },
        {
          "channel_tag": "1",
          "text": "все",
          "start_time": "6s",
          "end_time": "7s",
          "classifiers": []
        },
        "transcription": {
           "phrases": [
               {
                   "channel_tag": "0",
                   "text": "Здравствуйте! Позовите старшего по смене.",
                   "start_time": "2s",
                   "end_time": "6s",
                   "classifiers": [
                       {
                           "classifier": "Приветствие",
                           "highlighted_text": "здравствуйте"
                       },
                       {
                           "classifier": "Требует начальника",
                           "highlighted_text": "позовите старшего"
                       },
                   ]
                }
              ]
          },
      }
  }