Comments 9
А ivr как то помогает стандартизировать ответы или просто обрабатывается поток сознания?
Вам звонят заказывать только воду?
Встав перед аналогичной задачей я покрутил- покрутил записи и решил просто расшифровывать их и показывать сотруднику в виде текста с возможностью прослушать. Слишком все неоднородно.
В данном случае это телефон для заказа воды.
Если в тексте нет заданных кодовых слов, то идет вытаскивание из фразы смыслов для формирования заказа.
Вот вам примеры заказов (с такой же штукой развлекаюсь) : Source
"Как заказать.Скиньте ссылку"
Source:
"Добрый день. Счёт оплатили. Прошу организовать доставку на ближайшее время."
и тд и тп. формулировки очень хаотичны, безграмотны, с точки зрения языка, могут обрываться и могут быть продолжениями предыдущей переписки или перенос с разговора в чат.
ключевые слова тут не помогут. инвариантность слишком большая база для анализа. методы стандартизации nlp тоже все корявенькие и слишком сложны для интеграции. и слишком общи (то что я смог попробовать в силу кривизны рук, так как некоторые инструменты, чтобы установить надо быть весьма продвинутым системным админом)
я пока забил на эту игрушку, но пришёл к следующей схеме - постепенной замены семантически близких выражкний на метапеременные. начиная, естесственнл с самых массивных и постепенно сокращая их длину.
в конце убирается всякий шум типа междометий, предлогов и тд. и получается что то слегка свернутое типа
Source
Добрый день. Можно на 12.04.2022 доставочку воды заказать. ООО "Рога и копыта" Карла- Маркса 000 оф.9.
Вода 19 л.-1 шт.
после нормализации
Norm:
/[GRT]/ {BY} 12/04/2022 {DLV} {TARGET1} / " " 000 /9/ {TARGET1} 19 /1 /
далее уже можно формировать семантическую сетку по целям и как то приближенно работать с ней.
и избавьиесь от циклов. регулярки могут делать все в один проход.
Имеет смысл разделить на несколько ситуаций.
Если робот "уверенно" вытащил смыслы, то фиксировать заказ.
Если робот что-то не вытащил, или "не уверен", то именно в этом случае давать сотруднику полученный текст и запись послушать.
Постепенно отходим от ivr, пытаемся переводить на ветку сценария в зависимости от сказанного, как при человеческом диалоге.
Если, например, позвонивший сказал "Здравствуйте заказ примите", то пошел на одну ветку, а если "а как узнать", "а сколько стоит", "а как оплачивать" - то это на другу. ветку.
Меню у робота "как бы есть", только он его не произносит, а переключает в зависимости от фразы позвонившего и того, что смог распознать.
Очень интересно и перспективно, но пока даже у тех, кто обладает чуть ли не безграничными ресурсами это работает ужасно (пример - телеком или банки из топов). Причина полагаю в том, что самые прогрессивные модели распознавания хорошо и быстро работают только в идеальных условиях, а в реальных тут и лаги и ошибки распознавания. Об идеальном пользовательском опыте, когда звонящий не то что не понял что общается с роботом на даже просто остался доволен, пока удается только почитать.
Очень зависит от структуры диалога.
Принять заказ или провести подробную консультацию - пока очень разные ситуации.
И дело, скорее не в распознавании, а в сценарии.
По моему опыту, само распознавание происходит достаточно корректно.
Пробовали и с посторонними шумами - хруст, скрип, шелест, журчание воды, шум мотора - все в целом ок, распознается хорошо.
Другое дело, сам сценарий. Действительно, пользователи могут быть не довольны неестественностью робота и даже некомпетентностью. Например, робот немного провисает при ответе, так как ему нужна определенная пауза, чтобы определить, что человек закончил фразу. И если человек в диалоге еще и перебивает, то робот по факту может отработать только часть фразы, и получается некорректно. Также робот не может ответить на вопрос, которому не обучен. В этом случае он либо зависнет, либо переключит на оператора, либо "извините, мы перезвоним". Конечно, для пользователя это неудобно.
При этом заметили, что если пользователь понимает, что общается с роботом, и у него цель - сделать заказ, а не сломать робота, то пользователь понимает ситуацию, говорит то, что спрашивает робот, и даже старается помедленнее и четче, экономя непосредственно свое время, чтобы потом не повторять.Видно, что по мере привыкания, а также при постепенном улучшении сценария, конверсия обращений даже диалогового звонка в заказ повышается. И пользователи уже сами выбирают робота, а не оператора, потому что оператора нужно ждать, а робот отвечает сразу, он многоканальный. В итоге "провести опрос" и распознать наименование воды, объем тары, количество бутылей, день, интервал доставки роботы могут уже достаточно стабильно.
— хотите сделать заказ — нажмите 1
— хотите отменить заказ — нажмите 2
— хотите узнать статус заказа — нажмите 3 и введите номер заказа
Да, не так модно и удобно, зато гораздо надёжней.
С одной стороны - да.
С другой - если от нажатий и переходить к голосу, то даже уже возможно как минимум предлагать выбрать по меню голосом, а не нажатием.
— ... — скажите "заказ"
— ... — скажите "отмена"
— ... — скажите "узнать" и сообщите номер заказа
Возможно, на массовых рынках для большинства пользователей это еще не так важно и принципиально, хотя все больше и больше пользователей привыкают к умным устройствам и именно голосовому управлению.
Автоматическая расшифровка заказа c автоответчика (практическое применение транскрибатора)