Цель проекта

Доработка программы, для поддержки работы телефонных операторов и предоставления им информации/подсказок в реальном времени в зависимости от того, что было сказано клиентом и оператором во время разговора.

Ситуация в общих чертах: Уже есть наработки, так что совсем с нуля задачу решать не придется. Также есть примеры похожих и даже очень близких продуктов (приведу ниже). Сейчас задача довести до MVP, чтобы пилотно можно было пробовать работать с операторами уже. Ниже - описание только для этого пилотного проекта, по дальнейшему развитию есть много идей.

Stack: backend - python, фронт - vue. Архитектура: клиент (Vue, Vuetify, Vuex, Axios) -> сервер (Fastapi, requests) -> база (sqlite)

Для распознавания голоса используется готовое решение Assembly AI. Используем navigator.mediaDevices.getDisplayMedia и navigator.mediaDevices.getUserMedia.


Суть продукта

Состоит из 2 частей: для оператора и для менеджера.

Оператор

Со стороны оператора выглядит так.

Оператор принимает звонок от клиента. По ходу разговора программа ведет распознавание речи оператора и клиента, и преобразует в текст в реальном времени. При обнаружении заранее заданных ключевых слов/фраз в речи оператора - ставит отметку в чеклисте. При обнаружении заранее заданных ключевых слов/фраз в речи клиента - показывает оператору текстовую подсказку (как лучше ответить в данной ситуации).

Интерфейс для оператора состоит из 2х блоков (наилучший пример - похожий сервис abstrakt.ai).

Часть, что слева. В верхнем блоке - “чеклист”, внизу - подсказки оператору.

Часть, что слева. В верхнем блоке - “чеклист”, внизу - подсказки оператору.

Первый блок (вверху) - "чеклист". Это - стандартный скрипт оператора. Что он обычно должен сказать в ходе разговора и в каком порядке. Например, поприветствовать - спросить какую услугу хочет заказать клиент - описать преимущества выбора нашей компании для оказания этой услуги - предложить заказать прямо сейчас - попрощаться. Требуется также добавить возможность выбора чеклиста - может из дропдауна. Второй блок (внизу) - "подсказка". Она появляется когда в ходе разговора клиент произносит ключевое слово/слова, совпадающие с заранее заданными словами. Например, клиент задает вопрос "Что вы сделаете, если мне не понравится качество предоставленной услуги?"; подсказка - "мы возвращаем клиенту 50% стоимости услуги".

Пример работы того, что уже есть. Это должно дать понимание как работает. На видео я сперва говорю фразу из чеклиста. Затем уже в другой микрофон (как бы со стороны клиента) говорю заданную фразу, которая триггерит подсказку (The training process can be really long.) После чего появляется подсказка. Все записано с использованием реальной IP-телефонии. Видео - https://www.loom.com/share/845013f63a1242c7b98ac749d969672a