Анализатор Автоответов
Настройка анализатора ответов Infinity call progress detector
Назначение модуля
· повышение производительности исходящих кампаний
· снижение «холостой» нагрузки на операторов
Принцип работы
· распознавание ответов операторов мобильной связи до ответа абонента
· распознавание сигнала факс-машины после ответа абонента
· распознавание ответов операторов мобильной связи после получения connect от провайдера
Важно: распознавание сигнала факс-машины приведет к задержке соединения с оператором (по умолчанию 1 секунда, можно изменить в сценарии)
Настройка Infinity 4
· Минимальная версия: 4.10.7.1
· Воспринимать как Alerting: Набран номер, Действие при Alerting: Коммутация с абонентом для маршрута, через который идут звонки кампании
Настройка Infinity X
· Минимальная версия: 1.16.9.8519
· Указать адрес и порт сервера, на котором развернута служба. Администрирование – Параметры системы: Интеграция – Анализатор автоответов – Адрес и порт сервера
· Выбрать сценарий «Анализатор ответов операторов связи» (версия 1 без анализа факс-машины, версия 2 с анализом ответа факс-машины) в параметрах кампании в качестве сценария «Во время дозвона»
Развертывание службы
· Для работы необходимо наличие Microsoft.NET Framework версии 4.5
· Скопировать папку InfinityCPD на сервер Infinity X либо на любой другой сервер, доступный с сервера Infinity X по порту 9999
· Запустить консольное приложение InfinityCallProgressDetector.exe либо зарегистрировать и запустить службу (однократный запуск register.bat, затем старт службы через панель управления)
Настройка службы
В файле InfinityCallProgressDetector.exe.config можно изменить следующие параметры (вступают в силу после перезапуска службы):
· LogLevel – уровень логирования: 1 – минимальный, 2 – статистика распознавания, 3 – отладочная информация
· SaveFiles – сохранение wav-файлов: 0 – никогда, 1 – только нераспознанные, 2 – все
· Port – порт для подключения к Infinity X: 9999 – по умолчанию
· ListenAfterConnect – активирует анализ после получения connect от провайдера связи: True – вкл. , False – выкл.
· ListenForSilence – активирует распознавание тишины
· SilenceLength – продолжительность ожидания работы анализатора после connect от провайдера: задается в миллисекундах
· StopIVR – активирует анализ автоответчиков/IVR/приветствия/прочие звуковые файлы
· IVRRatio – процент звука после коннекта (в т.ч. речи, шумов и т.д.).
Описание работы параметров:
Если отключить ListenForSilence, анализатор будет работать – без анализа тишины.
Если включить, то надо обязательно выставить SilenceLength как продолжительность ожидания работы анализатора после коннекта – 7000 мсек. Задается в миллисекундах.
Если отключить StopIVR, анализатор будет отбивать только тишину. Если оставить включенным – будет отбивать и тишину, и подозрительные автоответчики/ИВР/приветствия/прочие голосовые сообщения.
Если нужны только живые люди, говорящие «да» или «алло», то параметр StopIVR оставляем. Все, что анализатор посчитает похожим на автоответчики/ИВР/приветствия/ прочие голосовые сообщения отобьет. Есть вероятность отбоя разговорчивых абонентов, а также тех, у кого в помещении шумно. Если нужно, чтобы на операторов такие звонки переключались, параметр отключаем. Тогда мы будем отбрасывать только тишину, но вероятно статистика результативности будет хуже, т.к. операторам не нравятся такие звонки.
Если мы хотим проигрывать клиенту сообщение до соединения с оператором, его нужно записать и сохранить, как cpd.wav. Его длина должна быть равна параметру SilenceLength. Формат файла соответствует стандартным параметрам аудио-файлов Инфинити: файл формата Microsoft Wave, PCM (без компрессии), 8000Hz, 16 Бит, Моно.
Его необходимо поместить в сценарий «анализатор ответов операторов связи»
Важно, чтобы в файле cpd.wav было в начале 2-3 секунды тишины. Если этого не будет – есть вероятность, что абонент не скажет «алло» в ожидании соединения с оператором и анализатор его отобьет, услышав тишину.
Настройка в Infinity Call-center X для анализа после connect и распознавания тишины.
Управление – Сценарии – Анализатор ответов операторов связи. Делаем копию сценария по умолчанию «С анализом ответа факс-машины». В компоненте «После ответа - ждем факс-тон» выставляем «Продолжительность» равной параметру SilenceLength. Сохраняем, компилируем, активируем. Затем используем эту версию в качестве сценария «Во время дозвона» в исходящей кампании.
Автоответчиком/IVR считается голос, в котором более 30% звука (в т.ч. речи, шумов и т.д.).
Этот параметр вынесен в настройки.
<setting name="IVRRatio" serializeAs="String">
<value>30</value>
</setting>
Общая методология подбора параметра: если поднимать – автоответчики пойдут на операторов, т.к. будут считаться живыми людьми. Если опускать – живые люди будут отбиваться, т.к. будут считаться автоответчиками. Рекомендуем начать с 30.
Изменения в конфиге применяются после перезапуска сервера Infinity Call-Center X через утилиту Infinity Guardian.
Добавление новых шаблонов в анализатор ответов провайдера.
Для сбора новых шаблонов необходимо включить запись нераспознанных ответов в конфигураторе анализатора и расширить лог анализатора до 3-го уровня. По умолчанию конфигуратор анализатора ответов лежит по пути:
C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\InfinityCallProgressDetector.exe.config
Открываем его с помощью блокнота.
Настройка службы
В файле InfinityCallProgressDetector.exe.config нужно изменить следующие параметры (вступают в силу после перезапуска службы):
· SaveFiles – сохранение wav-файлов: 0 – никогда, 1 – только нераспознанные, 2 – все
· LogLevel – уровень логирования: 1 – минимальный, 2 – статистика распознавания, 3 – отладочная информация
Т.е. устанавливаем значение 1 для параметра SaveFiles ,значение 3 для параметра LogLevel и сохраняем конфиг.
<setting name="LogLevel" serializeAs="String">
<value>3</value>
<setting name="SaveFiles" serializeAs="String">
<value>1</value>
В последних версиях программы Infinity Call-Center X анализатор запускается совместно с сервером бизнес-логики.( Cx.BusinessServer). Изменения в конфиге начнут действовать после перезапуска сервера Infinity Call-Center X через утилиту Infinity Guardian.
Далее нужно найти новые шаблоны, которых нет в базе.
Переходим в папку:
C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\Data\WavFiles
В папке создаются вложенные папки по часам и датам.
В папках с временем лежат еще две папки afterconnect и beforeconnect.
Нас интересуют папки – Unknown(нераспознанные) .
Из этих папок нужно достать все звуковые файлы кроме гудков. (для этого удобно использовать программу Audacity, т.к. в ней сразу можно отличить гудки от реальных шаблонов)
После того, как уникальные шаблоны найдены необходимо разложить их по папкам к которым они относятся (Голосовая почта, Абонент недоступен, Абонент Занят, Факс, Номер не обслуживается ), отрезать тишину вначале фразы и в конце. Далее передать архив с шаблонами в формате (Microsoft Wave, PCM (без компрессии), 8000Hz, 16 Бит, Моно) и логами (папка Logs по пути C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\Data\) инженерам технической поддержки для добавления их в базу. После получения новой базы шаблонов, нужно заменить файл templates.dat по пути: C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\Data при остановленном сервере Infinity X.
Важно:
- обновленные шаблоны будут доступны только при наличии в ключе пришивки актуального пакета обновлений
- файлы с плохим качеством (хрипы или пропадания пакетов) не добавляются. Нужно добиваться от провайдера телефонии хорошего качества связи
- ролик "Соединение установлено. Пожалуйста подождите" не добавляется, т.к. это ответ оператора связи, после которого вероятно будет живой разговор
- индивидуальные ролики клиентов "Это автоответчик, пожалуйста перезвоните позже" не добавляются, т.к. это единичный шаблон для одного абонента
- разные варианты гудков и музыки не добавляются
- новые пачки файлов необходимо сопровождать расширенным логом анализатора. Где будет видно версию шаблонов и доступность обновлений
В версии 1.19.11 произошли изменения в работе модуля анализатора.
При обнаружении результата Голосовая почта воспроизведение заданного сообщения» реализован полезный функционал: два новых состояния контрагента «Тишина» и «Голосовое меню или автоответчик». Раньше вместо них всегда выставлялся результат «Голосовая почта».
Настройки в конфигураторе анализатора осталось три – порт, логирование, сохранение файлов. (C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\InfinityCallProgressDetector.exe.config)
Остальные доступны в свойствах компонента сценария – четыре галочки «Поиск» и два числовых коэффициента.
Файл – выбираем звуковой файл, который необходимо воспроизвести клиенту после получения от провайдера события о поднятии трубки. (до коннекта файл не воспроизводится)
Продолжительность – продолжительность ожидания ответа(до коннекта)/продолжительность анализа(после коннекта)
Стоп по кнопке – активирует выход из компонента, если клиент нажал кнопку на телефоне
Стоп по ответу – активирует выход из компонента, если от провайдера пришло событие о поднятии трубки клиентом
Поиск шаблона – активирует/деактивирует поиск загруженных шаблонов
Поиск факс машины – активирует/деактивирует поиск факсов
Поиск тишины – активирует/деактивирует анализ тишины. Очень часто провайдеры передают тишину после коннекта, когда включается голосовая почта.
Поиск голосового меню - активирует/деактивирует анализ IVR меню.
Коэффициент голоса - это десятикратный порог относительно средней амплитуды шума, по которому система отделяет голос от шума. Рекомендуемое (экспериментально подобранное на тысячах примеров) значение - 30 (т.е. все, что в 3 и более раза громче шума - голос). Если значение уменьшать - алгоритм будет больше тишины (шума) воспринимать как голос. Если увеличивать - меньше. В конечном итоге это повлияет на достоверность результатов "тишина" и "голосовое меню".
Коэффициент IVR - процент голоса в анализируемом фрагменте, при достижении которого система считает, что это не человек, а голосовое меню. Значение по умолчанию - опять же 30. Если уменьшить - даже короткие ответы будут восприниматься как голосовое меню. Если увеличить - голосовое меню с паузами будет восприниматься как живой человек.
Оба коэффициента влияют на определение тишины и голосовых меню и не влияют на распознавание шаблонов.
Вместо двух базовых версий сценария стало четыре. Отличия в описании сценариев
В четвертой версии показан пример, как воспроизвести сообщение после обнаружения голосовой почты
ВАЖНО! Версия 1.19.11 будет работать только с анализатором 1.19.11 (несовместимость версий будет отбиваться, т.е. анализатор просто не будет работать). После обновления версии нужно пересохранить и перекомпилировать все используемые версии сценария анализатора ответов (кроме четырех стандартных – они уже в новом формате). Старые работать не будут, в логе IVR будет ACCESS_VIOLATION.
Начиная с версии 1.19.11 предоставлена возможность самостоятельно пополнять шаблоны анализатора. Основные тезисы:
1. Копируем wav файлы (нераспознанные шаблоны) в папку Data/templates (рядом с дефолтными шаблонами Data/templates.dat)2. Формат файла – wav, 8000Hz, 16bit, Mono
3. Оптимальная длина файла – от 2 до 5 секунд. Слишком короткие будут вызывать ложные срабатывания, слишком длинные будут требовать слишком много ресурсов и срабатывать с пониженной вероятностью
4. Файлы плохого качества (в том числе с выпавшими голосовыми пакетами) не добавляем
5. Имя файла должно начинаться с одного из четырех слов bad, busy, na, vmail. Это будет определять статус контрагента. Далее через пробел текст сообщения. Остальные файлы будут игнорироваться
6. Примеры правильных файлов:
“bad Обслуживание набранного вами номера временно приостановлено.wav”
“busy Абонент занят пожалуйста подождите.wav”
“na Абонент временно заблокирован.wav”
“vmail Номер не отвечает оставьте сообщение на автоответчик.wav”
1. Шаблоны считываются при старте анализатора(InfinityCallProgressDetector.exe). Поменяли/добавили – перезапускаем его. (Если это отдельная служба , тогда перезапускаем службу, если службы нет , тогда перезапускаем сервер Infinity X через Infinity Guard
2. Если запустить анализатор из командной строки
(C:\Program Files (x86)\IntelTelecom\Infinity Call-center X\BusinessServer\InfinityCPD\InfinityCallProgressDetector.exe)
, он прологирует в консольном окошке процесс загрузки шаблонов для контроля корректности имен файлов и их сопоставления статусам контрагентов:
Default templates initialized. Count: 758
Loaded custom template: ID=1001 Code=BadNumber File=bad Обслуживание набранного вами номера временно приостановлено.wav
Loaded custom template: ID=1002 Code=Busy File=busy Абонент занят пожалуйста подождите.wav
Loaded custom template: ID=1003 Code=Unavailable File=na Абонент временно заблокирован.wav
Loaded custom template: ID=1004 Code=Voicemail File=vmail Номер не отвечает оставьте сообщение на автоответчик.wav
Template is not loaded File=плохой файл.wav
All templates initialized. Count: 762
Начиная с версии 1.20.3 возможность вмешиваться в алгоритм двумя коэффициентами(голоса и IVR) отключена. Теперь можно изменять только продолжительность распознавания после поднятия трубки. Рекомендуемые значения от 6 до 8 секунд, по умолчанию 7.