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. Клиент хамил?

ClassifierStatistics

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

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

Тег Значение Описание
eagnb5sh8f54sj6h39hj info_request Запрос информации
eagc8vmbrava3igd28gg abusive_language Ругательные слова
eag05jenv1b3dmjkqbv0 parasites Слова-паразиты
eag3ashf3i2sbomvj7c0 reasons_not_to_buy Причины отказа от покупки
eagl0pd2vfofn09it0od refused_the_purchase Отказ от покупки
eagh1hdcvrff27sfdr9p dissatisfied_exclamations Недовольные восклицания
eag0thualdq4bagvi9bq broken_promises Невыполненные обещания
eagnpptnjfs1jr073ggj operator_unsure Неуверенность оператора
eagjihttig0dttnbs6b0 slurred_speech Замечания про невнятную речь
eag3nle0prt3iu477sln service Сервисное обслуживание
eagnqitt5eq30hiq5h6r complaints Жалобы и недовольства
eagqq0c5vmmhjc1faavg greetings_correct Приветствие
eag7r63rg51nenpa6kqb incorrect_hold Некорректный уход на холд
eagao963mjhrddmu89eo swears Матерные слова
eag5giob834re9n03cqj client_cant_speak Клиент не может разговаривать
eagm4hmut8cqpicanfa7 goodbye_incorrect Неформальное прощание
eag3ks4a1q8ev116rbbu stop_words Стоп-слова
eagh6gvgdbn1l546qau2 empathy Эмпатия
eaggdak4p8nbk56pepkn goodbye_correct Прощание
eagaieh3o62jfm5ak50f worries Клиент переживает
eag60qsa043utlgkfevb appreciation Благодарность
eag0i5bfl7l1ea42nmtd communication_issues Проблемы со связью
eags54u6j23rjeovv5a1 judgment Оценочное суждение
eagi0ee3u6tecreb3qg3 ask_for_boss Требует начальника
eag5rhgf6b0ldogie0cr non_fcr Повторное обращение
eagt7e3139bfn96rtrf0 greetings_incorrect Неформальное приветствие
eag4i29kvpo1lato35tv client_cant_wait Сколько можно ждать

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": "0.000000007s",
          "total_silence_duration": "0.000000007s",
          "speech_ratio": 0.06219512195121951,
          "speech_speed": {
            "min": 3.9215686274509802,
            "max": 3.9215686274509802,
            "avg": 3.9215686274509802,
            "std": 0
          }
        },
        {
          "channel_tag": "1",
          "total_speech_duration": "0.000000007s",
          "total_silence_duration": "0.000000007s",
          "speech_ratio": 0.07829268292682927,
          "speech_speed": {
            "min": 2.932551319648094,
            "max": 3.3222591362126246,
            "avg": 3.1274052279303595,
            "std": 0.2755650397741828
          }
        },
        {
          "channel_tag": "",
          "total_speech_duration": "0.000000015s",
          "total_silence_duration": "0.000000015s",
          "speech_ratio": 0,
          "speech_speed": {
            "min": 2.932551319648094,
            "max": 3.9215686274509802,
            "avg": 3.5244869276906696,
            "std": 0
          }
        }
      ]
    },
    "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.000000007s",
      "total_simultaneous_silence_ratio": 0.8595121951219512,
      "simultaneous_silence_duration_estimation": {
        "min": 1000,
        "max": 2399,
        "avg": 1762,
        "std": 630.355984080953
      }
    },
    "speech_statistics": {
      "total_simultaneous_speech_duration": "0s",
      "total_simultaneous_speech_ratio": 0,
      "simultaneous_speech_duration_estimation": {
        "min": 0,
        "max": 0,
        "avg": 0,
        "std": 0
      }
    },
    "conversation_summary": {
      "quiz": [
        {
          "request": "1. Оператор был вежливым?",
          "response": "1. Да"
        },
        {
          "request": "2. Оператор был раздражен?",
          "response": "2. Нет"
        },
        {
          "request": "3. Оператор был вовлечен в диалог?",
          "response": "3. Нет"
        }
      ]
    },
    "classifier_statistics": {
      "classification_results": [
        {
          "classifier": "eagkv1kios5m77dqmc6f",
          "channel_tag": "0",
          "total_count": "0"
        },
        {
          "classifier": "eagkv1kios5m77dqmc6f",
          "channel_tag": "1",
          "total_count": "0"
        },
        {
          "classifier": "eagkv1kios5m77dqmc6f",
          "channel_tag": "",
          "total_count": "0"
        },
        {
          "classifier": "eagl8ha8uq0f0boicv8l",
          "channel_tag": "0",
          "total_count": "2"
        }
          ]
        },
        {
          "channel_tag": "1",
          "text": "все",
          "start_time": "0.000000006s",
          "end_time": "0.000000007s",
          "classifiers": []
        }
    }
  }