Спасибо за комментарий ) Действительно, в ходе применения вылезают ошибки. Проверили код, там в цифре "4" на сегменте "11" был коэффициент 1.5, а должно быть -100. Поправили, стал определять как 3 )
Очень зависит от структуры диалога. Принять заказ или провести подробную консультацию - пока очень разные ситуации. И дело, скорее не в распознавании, а в сценарии.
По моему опыту, само распознавание происходит достаточно корректно. Пробовали и с посторонними шумами - хруст, скрип, шелест, журчание воды, шум мотора - все в целом ок, распознается хорошо. Другое дело, сам сценарий. Действительно, пользователи могут быть не довольны неестественностью робота и даже некомпетентностью. Например, робот немного провисает при ответе, так как ему нужна определенная пауза, чтобы определить, что человек закончил фразу. И если человек в диалоге еще и перебивает, то робот по факту может отработать только часть фразы, и получается некорректно. Также робот не может ответить на вопрос, которому не обучен. В этом случае он либо зависнет, либо переключит на оператора, либо "извините, мы перезвоним". Конечно, для пользователя это неудобно.
При этом заметили, что если пользователь понимает, что общается с роботом, и у него цель - сделать заказ, а не сломать робота, то пользователь понимает ситуацию, говорит то, что спрашивает робот, и даже старается помедленнее и четче, экономя непосредственно свое время, чтобы потом не повторять.Видно, что по мере привыкания, а также при постепенном улучшении сценария, конверсия обращений даже диалогового звонка в заказ повышается. И пользователи уже сами выбирают робота, а не оператора, потому что оператора нужно ждать, а робот отвечает сразу, он многоканальный. В итоге "провести опрос" и распознать наименование воды, объем тары, количество бутылей, день, интервал доставки роботы могут уже достаточно стабильно.
Постепенно отходим от ivr, пытаемся переводить на ветку сценария в зависимости от сказанного, как при человеческом диалоге. Если, например, позвонивший сказал "Здравствуйте заказ примите", то пошел на одну ветку, а если "а как узнать", "а сколько стоит", "а как оплачивать" - то это на другу. ветку. Меню у робота "как бы есть", только он его не произносит, а переключает в зависимости от фразы позвонившего и того, что смог распознать.
Имеет смысл разделить на несколько ситуаций. Если робот "уверенно" вытащил смыслы, то фиксировать заказ. Если робот что-то не вытащил, или "не уверен", то именно в этом случае давать сотруднику полученный текст и запись послушать.
Добрый день! Спасибо за статью. Благодаря статье получилось написать программу с двумя уровнями игры: 1 уровень - бот ходит по правилам, случайным образом. 2. бот делает оценку позиции своего хода, то есть при возможности будет совершать взятие.
следующим этапом планирую понять минимакс и сделать различную глубину.
Скорее, помощник просто берет на себя часть функций. Например, в самолете есть режим "автопилот". Компьютер не становится двойником человека, а берет на себя часть функций, с которыми может справиться.
Так и здесь. Голосовой помощник может взять на себя, например, ответы на часто встречающиеся вопросы. Или, наоборот, задавать вопросы по списку и фиксировать ответы. А человек в это время может заниматься чем-то более творческим или другими более важными делами, например ходить в спортзал или играть с ребенком. Голосовой помощник в это время отрабатывает "рутину".
У цифры 5 веса 1.2 и -100. Да, изначально мы "не знаем", какая цифра горит, горят какие-то сегменты.
Примерная схема для проектирования устройства в случае, приближенном к реальному. 1. Входы устройства соединены с сегментами. 2. Устройство опрашивает сегменты 1-13. Получает значения 0/1. 3. В математической части вычисляет 10 сумм (суммируем перемножения значений сегментов с весами, 1 сумма на строку). Если смотреть по таблице в статье, то это в каждой строке складываем перемножения весов и значений сегмента. 10 строк. 10 сумм. 10 цифр. 4. Определяет максимальную сумму. 5. По номеру строки, у которой сумма максимальна, определяет, какая цифра горит.
В зависимости от возможностей вывода устройства - выводить цифру на дисплей или соответствующий сигнал на нужную "ногу" микросхемы.
Спасибо за комментарий )
Действительно, в ходе применения вылезают ошибки.
Проверили код, там в цифре "4" на сегменте "11" был коэффициент 1.5, а должно быть -100.
Поправили, стал определять как 3 )
Изображение
Очень зависит от структуры диалога.
Принять заказ или провести подробную консультацию - пока очень разные ситуации.
И дело, скорее не в распознавании, а в сценарии.
По моему опыту, само распознавание происходит достаточно корректно.
Пробовали и с посторонними шумами - хруст, скрип, шелест, журчание воды, шум мотора - все в целом ок, распознается хорошо.
Другое дело, сам сценарий. Действительно, пользователи могут быть не довольны неестественностью робота и даже некомпетентностью. Например, робот немного провисает при ответе, так как ему нужна определенная пауза, чтобы определить, что человек закончил фразу. И если человек в диалоге еще и перебивает, то робот по факту может отработать только часть фразы, и получается некорректно. Также робот не может ответить на вопрос, которому не обучен. В этом случае он либо зависнет, либо переключит на оператора, либо "извините, мы перезвоним". Конечно, для пользователя это неудобно.
При этом заметили, что если пользователь понимает, что общается с роботом, и у него цель - сделать заказ, а не сломать робота, то пользователь понимает ситуацию, говорит то, что спрашивает робот, и даже старается помедленнее и четче, экономя непосредственно свое время, чтобы потом не повторять.Видно, что по мере привыкания, а также при постепенном улучшении сценария, конверсия обращений даже диалогового звонка в заказ повышается. И пользователи уже сами выбирают робота, а не оператора, потому что оператора нужно ждать, а робот отвечает сразу, он многоканальный. В итоге "провести опрос" и распознать наименование воды, объем тары, количество бутылей, день, интервал доставки роботы могут уже достаточно стабильно.
Постепенно отходим от ivr, пытаемся переводить на ветку сценария в зависимости от сказанного, как при человеческом диалоге.
Если, например, позвонивший сказал "Здравствуйте заказ примите", то пошел на одну ветку, а если "а как узнать", "а сколько стоит", "а как оплачивать" - то это на другу. ветку.
Меню у робота "как бы есть", только он его не произносит, а переключает в зависимости от фразы позвонившего и того, что смог распознать.
Имеет смысл разделить на несколько ситуаций.
Если робот "уверенно" вытащил смыслы, то фиксировать заказ.
Если робот что-то не вытащил, или "не уверен", то именно в этом случае давать сотруднику полученный текст и запись послушать.
В данном случае это телефон для заказа воды.
Если в тексте нет заданных кодовых слов, то идет вытаскивание из фразы смыслов для формирования заказа.
Спасибо )
для 0 в одном месте коэффициенты неправильно скопировали,
сейчас поправили, все корректно )
Добрый день!
Спасибо за статью.
Благодаря статье получилось написать программу с двумя уровнями игры:
1 уровень - бот ходит по правилам, случайным образом.
2. бот делает оценку позиции своего хода, то есть при возможности будет совершать взятие.
следующим этапом планирую понять минимакс и сделать различную глубину.
Скорее, помощник просто берет на себя часть функций.
Например, в самолете есть режим "автопилот". Компьютер не становится двойником человека, а берет на себя часть функций, с которыми может справиться.
Так и здесь. Голосовой помощник может взять на себя, например, ответы на часто встречающиеся вопросы. Или, наоборот, задавать вопросы по списку и фиксировать ответы.
А человек в это время может заниматься чем-то более творческим или другими более важными делами, например ходить в спортзал или играть с ребенком. Голосовой помощник в это время отрабатывает "рутину".
У цифры 5 веса 1.2 и -100.
Да, изначально мы "не знаем", какая цифра горит, горят какие-то сегменты.
Примерная схема для проектирования устройства в случае, приближенном к реальному.
1. Входы устройства соединены с сегментами.
2. Устройство опрашивает сегменты 1-13. Получает значения 0/1.
3. В математической части вычисляет 10 сумм (суммируем перемножения значений сегментов с весами, 1 сумма на строку). Если смотреть по таблице в статье, то это в каждой строке складываем перемножения весов и значений сегмента. 10 строк. 10 сумм. 10 цифр.
4. Определяет максимальную сумму.
5. По номеру строки, у которой сумма максимальна, определяет, какая цифра горит.
В зависимости от возможностей вывода устройства - выводить цифру на дисплей или соответствующий сигнал на нужную "ногу" микросхемы.
Спасибо за комментарий.
Согласен, конкретно эту задачу можно просто решить и циклом. Было важно выбрать для этой статьи именно простую задачу.