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