Поделиться через


Предоставление возможности восстановления после ошибок

[Microsoft Agent является нерекомендуемым начиная с Windows 7 и может быть недоступен в последующих версиях Windows.]

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

Первым шагом в восстановлении речевых ошибок является обнаружение условия сбоя. Распознавание речи может завершиться сбоем из-за различных ошибок. Условия ошибки обычно могут быть обнаружены в результате недопустимых входных данных, явного исправления или отмены пользователем или повторения пользователем.

Ошибка отклонения возникает, когда обработчик распознавания не соответствует тому, что сказал пользователь. Фоновый шум или ранний запуск также являются распространенными причинами сбоя распознавания, поэтому запрос пользователя повторить команду часто является хорошим начальным решением. Однако если фраза находится за пределами текущей активной грамматики, запрос на повторение запроса может решить проблему. Разница в формулировках может привести к совпадению с чем-то в текущей грамматике. Другой альтернативой является перечисление или предложение соответствующих ожидаемых параметров ввода.

Хорошая стратегия восстановления ошибок отклонения заключается в том, чтобы объединить эти методы, чтобы вернуть пользователя в нужное русло, предлагая все больше помощи, если сбой не исчезнет. Например, вы можете начать с ответа на первоначальный сбой с помощью допроса, такого как "Ху?" или "Что?" или жестом руки к уху. Короткий ответ повышает вероятность того, что повторная инструкция пользователя не завершится ошибкой, так как пользователь говорил слишком рано. При повторном сбое последующий запрос на перефразировку повышает вероятность сопоставления чего-либо в данной грамматике. Отсюда предоставление явных запросов принятых команд еще больше увеличивает вероятность совпадения. Этот метод показан в следующем примере:

Пользователь: Я хотел бы пиццу в стиле Чикаго с анчоусами.

Характер: (Рука к уху) Да?

Пользователь: Я хочу пиццу Чикаго с анчоусами.

Символ: (встряхнуть головой) Перефразируйте запрос.

Пользователь: Я сказал Чикаго пицца, с анчоусами.

Характер: (Пожимая плечами) Извините. Скажите мне, что вы хотите, чтобы пицца была вам нужна.

Пользователь: Чикаго, с анчоусами.

Характер: По-прежнему не повезло. Вот что вы можете сказать: "Чикаго", "Гавайский" или "Комбо".

Чтобы обработка ошибок была более естественной, убедитесь, что при реагировании на ошибки указана определенная степень случайного изменения. Кроме того, естественная реакция пользователя на любой запрос на повторение ответа заключается в том, чтобы преувеличивать или увеличивать объем при повторе инструкции. Иногда может быть полезно напоминать пользователю говорить нормально и ясно, так как преувеличение или увеличение громкости может усложнить распознавание слов речевым механизмом.

Прогрессивная помощь должна делать больше, чем привлекать внимание пользователя к ошибке; он должен направлять пользователя к речи в текущей грамматике, последовательно предоставляя более информативные сообщения. Интерфейсы, которые, как представляется, пытаются понять, способствуют высокой степени удовлетворенности и терпимости со стороны пользователя.

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

Пользователь: Я хотел бы пиццу в стиле Чикаго.

Персонаж: Вы сказали, что хотите "Чикаго в стиле пиццы"?

Пользователь: Да.

Характер: Какие дополнительные ингредиенты вы хотели бы на нем?

Пользователь: Анчоусы.

Характер: Вы сказали "анчоусы"?

Пользователь: Да.

Однако использование этого метода для каждого высказывания становится неэффективным и утомительным. Чтобы решить эту проблему, ограничьте подтверждение ситуациями, которые имеют значительные негативные последствия или усложняют выполнение непосредственной задачи. Если пользователю легко внести или отменить изменения, вы можете избежать запроса на подтверждение выбора. Аналогичным образом, если вы делаете выбор видимым, может не потребоваться явное исправление. Например, при выборе элемента из списка может не потребоваться проверка, так как пользователь может просматривать результаты и легко изменять их. Вы также можете использовать достоверность и альтернативные оценки для предоставления порогового значения для подтверждения. Вы можете изменить пороговое значение, сохранив журнал действий пользователя в заданной ситуации и исключив проверку на основе согласованного подтверждения пользователя. Наконец, рассмотрим мультимодальный характер интерфейса. Также может быть уместно подтверждение с помощью мыши или клавиатуры.

Тщательно выбирайте формулировки подтверждений. Например, "Вы сказали...?" или "Я думаю, что вы сказали..." лучше, чем "Действительно ли вы хотите...?", потому что предыдущие фразы подразумевают, что точность прослушивания (распознавания) персонажа запрашивается, а не то, что пользователь может иметь ошибку.

Также рассмотрите грамматику для ответа. Например, отрицательный ответ, скорее всего, приведет к ошибке отклонения, требующей дополнительного запроса, как показано в следующем примере:

Пользователь: Я хотел бы пепперони.

Характер: Вы сказали "нет ветчины"?

Пользователь: Нет, я сказал пепперони.

Характер: Да?

Пользователь: Пепперони.

Изменение грамматики для включения префиксов для обработки естественных вариантов ответа повышает эффективность процесса восстановления, особенно если пользователь не подтверждает запрос на проверку. В этом примере подтверждение можно было бы обработать за один шаг, изменив грамматику для "пепперони", включив также слова "нет я сказал пепперони", "Я сказал пепперони" и "нет пепперони".

Вы также можете обрабатывать ошибки подстановки с помощью альтернативных соответствий, возвращаемых подсистемой распознавания речи в качестве корректирующего подтверждения:

Пользователь: Я хотел бы пепперони.

Характер: (Слышит "нет ветчины" как лучший матч, "пепперони" в качестве первой альтернативы) Вы сказали "нет ветчины"?

Пользователь: Нет, пепперони.

Характер: (Все еще слышит "нет ветчины", как лучший матч, но теперь предлагает первую альтернативу) "Пепперони"?

Аналогичным образом можно сохранить журнал распространенных ошибок подстановки и, если конкретная ошибка часто возникает, предложить альтернативу в первый раз.

В любой ситуации с ошибкой распознавания не обвиняйте пользователя. Если символ предполагает или даже подразумевает, что пользователь blame, или персонаж кажется безразличным к ошибке, пользователь может обидеться. Здесь также тщательно выбирайте формулировки, которые явно принимают на себя ответственность, соответствуют ситуации и используют разнообразие для создания более естественного ответа. При выражении извинений избегайте неоднозначных слов, таких как "oops" или "uh-oh", которые могут быть интерпретироваться как обвиняющие пользователя. Вместо этого используйте такие фразы, как "Извините" или "Моя ошибка". Повторяющиеся или более серьезные ошибки могут использовать более сложные извинения, такие как "Мне очень жаль об этом". Также учитывайте личность персонажа при определении типа ответа. Другой вариант — blame внешней ситуации. Комментарии, такие как "Мальчик, это шумно там", отнять blame от пользователя и персонажа. Напоминание пользователю о совместном характере взаимодействия также может быть полезным: рассмотрите такие фразы, как"Давайте посмотрим, что мы можем сделать, чтобы сделать эту работу".

Microsoft Agent также поддерживает некоторые автоматические отзывы для распознавания. При обнаружении высказывания подсказка по прослушиванию отображает голосовый текст наилучшего услышанного совпадения. Вы можете настроить собственный текст для отображения на основе параметра достоверности для определенной команды.

Из-за потенциальной ошибки всегда требовать подтверждения для любых вариантов, которые имеют серьезные негативные последствия и являются необратимыми. Естественно, вам потребуется подтверждение, если результаты действия могут быть разрушительными. Однако рекомендуется также требовать подтверждения для ситуаций, которые прерывают любой длительный процесс или операцию.