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 | ответ, автоматически сгенерированный на основе семантического анализа |
Резюме диалога состоит из ответов на эти вопросы:
- Оператор был вежливым?
- Оператор был раздражен?
- Оператор был вовлечен в диалог?
- Оператор был эмпатичным?
- Оператор хамил?
- Оператор решил проблему клиента?
- Оператор был уверенным?
- Клиент ушел раздраженным?
- Клиент остался доволен?
- Клиент хамил?
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": "позовите старшего"
},
]
}
]
},
}
}