Многопоточная дешифровка и транскрибация записей телефонных переговоров системы NICE
В этой статье мы хотим познакомить читателей с опытом применения продукта от компании NICE Systems - системой NICE Interaction Management. Данная система обеспечивает тотальную запись разговоров, экранов и всех сопутствующих CTI-данных работы операторов контактных центров. По завершению разговора с оператором система позволяет клиенту дать обратную связь о качестве работы контактного центра.
Очень важной особенностью системы является наличие в её составе модуля транскрибации телефонных переговоров. Speech-to-text инструмент NICE’a имеет высокую точность, и к результатам его работы можно применять технологии text-mining’а, что позволяет аналитикам и аудиторам компании анализировать большие количества записей переговоров в автоматическом режиме.
Speech-to-text модуль для конечного пользователя представлен в виде клиент-серверного приложения, который несет в себе следующий функционал – дешифровывает записи телефонных разговоров формата .nmf (внутренний формат записи системы), возвращает запись в уже всем привычном звуковом формате wave, и приложенный к ней файл с расширением .ass содержащий транскрибацию разговора в виде текста. Скорость работы модуля примерна равна один к четырем т. е. за минуту работы обрабатывается запись длительностью четыре минуты.
Клиентская часть сервиса – это консольное приложение NiceNmfDecoderConsole управление которым осуществляется при помощи bat-файла. Пример команды –
Где:
-NiceNmfDecoderConsole.exe – путь к исполняемому файлу приложения-клиента (можно не полный, при условии, если bat-файл располагается в той же директории, что и исполняемый файл).
-000.000.000.000 – IP адрес сервера.
- in – путь к папке, содержащей файлы подлежащие дешифровке и транскрибации (в формате .nmf).
В результате запуска bat-файла, NiceNmfDecoderConsole будет поочередно пересылать файлы из папки in на серверную часть приложения для обработки. Ответы сервера (в виде файлов wave и текстовиков с транскрибацией) будут приходить на клиент, и сохраняться в папке in с такими же именами файлов, как был назван исходный файл, различаясь расширением.
Стоит отметить, что запуск программы таким образом целесообразен при небольших количествах обрабатываемых файлов. В случае, если количество записей велико, и во время работы произойдет какая-либо ошибка или обрыв связи с сервером, пользователю придется вручную отделять обработанные файлы от тех, до которых очередь не успела дойти и перезапускать приложение.
В одном из проектов нашей команде нужно было проанализировать около тридцати тысяч записей телефонных переговоров из системы Nice. Для работы с таким массивом информации было принято решение немного автоматизировать работу этого приложения. Был разработан Python-скрипт для запуска этой программы в несколько потоков, код приведен ниже:
Скрипт сканирует папку, путь к которой задается переменной path_data, составляет список файлов с расширением .nmf, после чего запускает NiceNmfDecoderConsole в десять потоков (количество потоков определяется переменной threads). Как только хоть один поток завершит работу, скрипт запишет в лог-файл имя файла над которым работал поток и код завершения (где 0 – успешно). По завершению потоков скрипт будет запускать новые, для последующих файлов в списке, постоянно поддерживая параллельную работу десяти, пока не закончится список файлов.
Таким образом можно обработать большое количество аудиозаписей системы Nice со значительно увеличенной производительностью и небольшой трудоемкостью для конкретного пользователя. Кроме того, работа аналитика в этом случае не будет сильно зависеть от сбоев и обрыва связи с сервером. Надеемся, что информация данная в этой статье будет полезна для Вас!