GetSpeechAnalyticsList
Метод GetSpeechAnalyticsList
Примените метод GetSpeechAnalyticsList для получения результатов речевой аналитики звонков за определенный период. Для этого выполните POST-запрос с входными параметрами к точке подключения, указанными ниже:
Точка подключения:
POST: https://api.exolve.ru/statistics/call-record/v1/GetSpeechAnalyticsList
Авторизация
Передайте следующие Заголовки HTTP для успешной авторизации.
Имя | Тип | Описание |
---|---|---|
Authorization | string | API-ключ приложения с Bearer перед ним. Пример: Bearer e***s0, где e***s0 замените на API-ключ вашего приложения |
Входные параметры
Передайте следующие параметры в теле запроса в JSON-формате. Параметры, отмеченные жирным шрифтом, являются обязательными.
Параметр | Тип | Описание |
---|---|---|
date_from | string | дата начала выборки звонков в формате RFC-3339 / ISO-8601 |
date_to | string | дата окончания выборки звонков в формате RFC-3339 / ISO-8601 |
limit | uint32 | лимит выводимых строк |
offset | uint64 | номер строки, с которой начинать выборку (начинается с 0) |
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
speech_analytics | Array SpeechAnalytics | результат речевой аналитики звонка |
SpeechAnalytics
Параметр | Тип | Описание |
---|---|---|
url | string | URL для отправки текстовой расшифровки звонка |
call_id | uint64 | идентификатор звонка |
application_uuid | string | идентификатор приложения, с номера которого был совершён звонок |
date_time | string | дата и время готовности речевой аналитики RFC-3339 / ISO-8601 |
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 | неверный идентификатор звонка |
Примеры
Входные параметры:
{
"date_from": "2024-01-15T00:10:00Z",
"date_to": "2025-01-30T23:59:59Z",
"application_uuid": "80f14680-d069-4aa2-b7b6-e0699231ec17"
}
Выходные параметры:
{
"url": "https://example.com",
"call_id": "7227567342572675072",
"application_uuid": "80f14680-d069-4aa2-b7b6-e0699231ec17",
"date_time": "2024-08-09T06:53:38Z",
"from": "78633035672",
"to": "79842198158",
"start_time": "2024-08-09T06:52:16.179Z",
"end_time": "2024-08-09T06:52:38.931Z",
"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. Нет"
}
]
},
"classifier_statistics": {
"classification_results": []
},
"transcription": {
"phrases": [
{
"channel_tag": "1",
"text": "Добрый день! Меня зовут Софья, как я могу вам помочь?",
"start_time": "1s",
"end_time": "5s",
"classifiers": [
{
"classifier": "Приветствие",
"highlighted_text": "добрый день"
}
]
},
{
"channel_tag": "0",
"text": "Алло! Вы меня слышите?",
"start_time": "7s",
"end_time": "8s",
"classifiers": [
{
"classifier": "Проблемы со связью",
"highlighted_text": "алло"
}
]
},
{
"channel_tag": "1",
"text": "Да, вас хорошо слышно.",
"start_time": "10s",
"end_time": "11s",
"classifiers": []
},
{
"channel_tag": "1",
"text": "Чем я могу вам помочь?",
"start_time": "13s",
"end_time": "13s",
"classifiers": []
}
]
}
},
{
"url": "https://example.com",
"call_id": "7227571958240649216",
"application_uuid": "80f14680-d069-4aa2-b7b6-e0699231ec17",
"date_time": "2024-08-09T07:11:38Z",
"from": "78633035672",
"to": "79842198158",
"start_time": "2024-08-09T07:10:36.646Z",
"end_time": "2024-08-09T07:10:50.911Z",
"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": "0",
"total_speech_duration": "5s",
"total_silence_duration": "5s",
"speech_ratio": 0.11,
"speech_speed": {
"min": 1.67,
"max": 4.68,
"avg": 2.61,
"std": 0
}
},
{
"channel_tag": "",
"total_speech_duration": "11s",
"total_silence_duration": "11s",
"speech_ratio": 0,
"speech_speed": {
"min": 3.85,
"max": 4.68,
"avg": 4.22,
"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": "5s",
"total_simultaneous_silence_ratio": 0.81,
"simultaneous_silence_duration_estimation": {
"min": 1180,
"max": 2560,
"avg": 1680,
"std": 764.4
}
},
"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. Нет"
},
{
"request": "4. Оператор был эмпатичным?",
"response": "4. Нет"
}
]
},
"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": []
},
"transcription": {
"phrases": [
{
"channel_tag": "1",
"text": "Добрый день! Меня зовут Софья, как я могу вам помочь?",
"start_time": "0.000000001s",
"end_time": "0.000000001s",
"classifiers": []
},
{
"channel_tag": "0",
"text": "Здравствуйте! Меня хорошо слышно?",
"start_time": "0.000000004s",
"end_time": "0.000000004s",
"classifiers": []
}
]
}
}
]
}