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


Рекомендации по проектированию Кортаны

Предупреждение

Эта функция больше не поддерживается в обновлении Windows 10 мая 2020 г. (версия 2004, имя кода "20H1").

См. статью Кортана в Microsoft 365 о том, как Кортана преобразует современные возможности повышения производительности.

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

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

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

Мы используем приложение для планирования поездки и управления с именем Adventure Works , встроенное в пользовательский интерфейс Кортаны , показанное здесь, для демонстрации многих концепций и функций, которые мы обсуждаем. Дополнительные сведения см. в примере голосовой команды Кортаны.

Снимок экрана: холст Кортаны

Разговорное письмо

Успешные взаимодействия Кортаны требуют выполнения некоторых основных принципов при создании строк текста в речь (TTS) и графического интерфейса.

Принцип Недопустимый пример Пример правильной схемы

Эффективность

Используйте как можно меньше слов и поместите наиболее важную информацию перед собой.

Конечно, может сделать, какой фильм вы хотели бы искать сегодня? У нас есть большая коллекция.

Конечно, какой фильм вы ищете?

Актуальное

Предоставьте сведения, относящиеся только к задаче, содержимому и контексту.

Я добавил это в список воспроизведения. Так что вы знаете, ваша батарея становится низкой.

Я добавил это в список воспроизведения.

Clear

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

Нет результатов для запроса "Поездки в Лас-Вегас".

Я не мог найти никаких поездок в Лас-Вегас.

Заслуживающий доверия

Будьте максимально точными. Будьте прозрачными о том, что происходит в фоновом режиме, если задача еще не завершена, не говорю, что у нее есть. Уважайте конфиденциальность— не читайте частную информацию вслух.

Я не мог найти этот фильм, он не должен быть выпущен еще.

Я не мог найти этот фильм в нашем каталоге.

Напишите, как говорят люди. Не подчеркивайте грамматические точности над звуком естественно. Например, понятные для уха словесные ярлыки, такие как "хочу" или "getta", хорошо для TTS считываются.

Используйте подразумеваемое время первого лица, где это возможно и естественно. Например, "Поиск следующей поездки Adventure Works" подразумевает, что кто-то делает поиск, но не использует слово "I" для указания.

Используйте некоторые варианты, чтобы сделать приложение более естественным. Укажите разные версии строк TTS и GUI, чтобы эффективно сказать одно и то же. Например, "Какой фильм вы хотите увидеть?", могут быть альтернативные варианты, такие как "Какой фильм вы хотите смотреть?". Люди не говорят одно и то же самое каждый раз. Просто не забудьте синхронизировать версии TTS и GUI.

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

Примечание.

Используйте фразы подтверждения только в TTS. Из-за ограниченного пространства на холсте Кортаны не повторяйте их в соответствующих строках графического интерфейса.

Используйте контракты в ответах для более естественного взаимодействия и дополнительного пространства на холсте Кортаны . Например, я не могу найти этот фильм" вместо "Я не смог найти этот фильм". Напишите для уха, а не глаз.

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

Используйте некоторые варианты в ответах путем поворота или случайного выбора из коллекции альтернативных ответов. Например, "Какой фильм вы хотите увидеть?" и "Какой фильм вы хотите посмотреть?". Это делает приложение более естественным и уникальным.

Локализация

Чтобы инициировать действие с помощью голосовой команды, приложение должно зарегистрировать голосовые команды на языке, выбранном пользователем на устройстве (язык > речи системы > распознавания речи > системы).

Вы должны локализовать голосовые команды, которые приложение отвечает на все строки TTS и GUI.

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

Дополнительные сведения см. в разделе "Глобализация и локализация".

Ресурсы изображений и масштабирование

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

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

Вы именуете ресурсы с помощью квалификаторов. Квалификаторы ресурсов — это модификаторы папок и имени файла, определяющие контекст, в котором должна использоваться определенная версия ресурса.

Стандартное соглашение об именовании — foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext. Например: изображения или logo.scale-100_contrast-white.png просто ссылаются в коде с помощью корневой папки и имени файла: images/logo.png. См. раздел "Управление языком и регионом " и "Как именовать ресурсы с помощью квалификаторов".

Мы рекомендуем пометить язык по умолчанию для строковых файлов ресурсов (например, en-US\resources.resw) и коэффициент масштабирования по умолчанию на изображениях (например, "logo.scale-100.png"), даже если вы не планируете предоставлять локализованные или несколько ресурсов разрешения. Однако рекомендуется предоставить ресурсы для 100, 200 и 400 коэффициентов масштабирования.

Внимание

Значок приложения, используемый в области заголовка холста Кортаны, — это значок Square44x44Logo, указанный в файле Package.appxmanifest.

Вы также можете указать значок для каждой плитки результата для запроса пользователя. Допустимые размеры изображений для значков результатов:

  • 68w x 68h
  • 68w x 92h
  • 280w x 140h

Шаблоны плитки результатов

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

Ниже приведены поддерживаемые шаблоны (примеры):

Имя. Пример
Только заголовок Снимок экрана: холст Кортаны с заголовком только
Заголовок с текстом Снимок экрана: холст Кортаны с текстом
Заголовок со значком 68x68 нет изображения
Заголовок со значком 68x68 и текстом Снимок экрана: холст Кортаны с заголовком с значком 68x68 и текстом
Заголовок со значком 68x92 нет изображения
Заголовок со значком 68x92 и текстом Снимок экрана: холст Кортаны с заголовком с значком 68x92 и текстом
Заголовок с значком 280x140 нет изображения
Заголовок с значком 280x140 и текстом Снимок экрана: холст Кортаны с заголовком с значком 280x140 и текстом

Дополнительные сведения о шаблонах Кортаны см. в разделе VoiceCommandContentTileType .

Пример

В этом примере показан комплексный поток задач для фонового приложения в Кортаны. Мы используем приложение Adventure Works для отмены поездки в Лас-Вегас. В этом примере используется шаблон Title с значком 68x68 и текстом.

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны

Ниже приведены шаги, описанные на этом рисунке:

  1. Пользователь коснитесь микрофона, чтобы инициировать Кортана.
  2. Пользователь говорит: "Отмена поездки Adventure Works в Вегас", чтобы запустить приложение Adventure Works в фоновом режиме. Приложение использует речь Кортаны и холст для взаимодействия с пользователем.
  3. Кортана переходит на экран передачи, который дает пользователю отзыв о подтверждении пользователя ("Я получаю Adventure Works в этом."), строку состояния и кнопку отмены.
  4. В этом случае пользователь имеет несколько поездок, которые соответствуют запросу, поэтому приложение предоставляет экран диамбигуации, который перечисляет все соответствующие результаты и спрашивает: "Какой из них вы хотите отменить?"
  5. Пользователь указывает элемент "Вегас Tech Conference".
  6. Так как отмена не может быть отменена, приложение предоставляет экран подтверждения, который просит пользователя подтвердить свое намерение.
  7. Пользователь говорит "Да".
  8. Затем приложение предоставляет экран завершения, показывающий результат операции.

Мы подробно рассмотрим эти шаги здесь.

Handoff

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью AdventureWorks предстоящей поездки без передачиAdventureWorks "Предстоящее путешествие" без экрана передачи

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью AdventureWorks предстоящей поездки с раздаткойAdventureWorks "Предстоящее путешествие" с экраном передачи

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

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

Рекомендации по графическому интерфейсу и TTS для экранов передачи

Четко указать, что задача выполняется.

Используйте текущее время.

Используйте команду действия, которая подтверждает, какая задача инициируется и ссылается на конкретную сущность.

Используйте универсальную команду, которая не фиксирует запрошенное, неполное действие. Например, "Ищете поездку" вместо "Отмена поездки". В этом случае, если результаты не возвращаются, пользователь не слышит что-то вроде "Отмена поездки в Лас-Вегас... Я не мог найти поездку в Лас-Вегас".

Убедитесь, что задача еще не прошла, если приложению по-прежнему нужно разрешить запрошенную сущность. Например, обратите внимание, что мы говорим "Ищете вашу поездку" вместо "Отмена вашей поездки", потому что ноль или больше поездок могут быть сопоставлены, и мы еще не знаем результат.

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

TTS Графический пользовательский интерфейс
Ищете свою следующую поездку Adventure Works. Ищете следующую поездку...
Поиск поездки Adventure Works в Фолс-Сити. Поиск поездки в Фолс-Сити...

Ход выполнения

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью AdventureWorks отмены хода выполнения поездкиХод выполнения AdventureWorks "Отмена поездки"

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

Чтобы запустить приложение в соответствующем состоянии, необходимо указать ссылку на приложение с параметрами запуска. Это позволяет пользователю просматривать или выполнять задачу самостоятельно. Кортана предоставляет текст ссылки (например, "Перейти к Adventure Works").

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

Эти экраны могут следовать за экраном хода выполнения:

  • Ход выполнения
  • Подтверждение (явное, описанное позже)
  • Устранение неоднозначности
  • Completion

Рекомендации по графическому интерфейсу и TTS для экранов хода выполнения

Используйте текущее время.

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

ГРАФИЧЕСКИЙ интерфейс: если отображается сущность, используйте ссылку на нее ("Отмена этой поездки..."); Значение , если сущность не отображается, явным образом вызывает сущность ("Отмена "Вегас Tech Conference").

TTS: на первом экране выполнения следует включить только строку TTS. Если требуются дополнительные экраны хода выполнения, отправьте пустую строку, {}в качестве строки TTS и укажите только строку ГРАФИЧЕСКОго интерфейса.

Условия TTS Графический пользовательский интерфейс
ЧТЕНИЕ СУЩНОСТИ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ ИЛИ СУЩНОСТЬ, ПОКАЗАННАЯ НА ЭКРАНЕ Отмена этой поездки... Отмена этой поездки...
СУЩНОСТЬ НЕ СЧИТЫВАЮТСЯ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ ИЛИ СУЩНОСТЬ, ПОКАЗАННАЯ НА ЭКРАНЕ Отмена поездки в Вегас... Отмена этой поездки...
СУЩНОСТЬ НЕ СЧИТЫВАЮТСЯ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ ИЛИ НЕ ОТОБРАЖАЕТСЯ СУЩНОСТЬ Отмена поездки в Вегас... Отмена поездки в Вегас...

Подтверждение

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью подтверждения отмены поездки AdventureWorksПодтверждение "Отмена поездки" AdventureWorks

Некоторые задачи могут быть неявно подтверждены по характеру команды пользователя; другие потенциально более чувствительны и требуют явного подтверждения. Ниже приведены некоторые рекомендации по использованию явного и неявного подтверждения.

Строки графического интерфейса и TTS на экране подтверждения указываются приложением, а значок приложения, если он указан, отображается вместо аватара Кортаны .

После ответа клиента на подтверждение приложение должно предоставить следующий экран в пределах 500 мс, чтобы избежать выхода на экран выполнения.

Используйте явное использование, когда...

  • Содержимое оставляет пользователя (например, текстовое сообщение, сообщение электронной почты или социальные записи)
  • Действие не может быть отменено (например, при покупке или удалении чего-либо)
  • Результат может быть неловко (например, вызов неправильного человека)
  • Требуется более сложное распознавание (например, открытое транскрибирование)

Используйте неявное, когда...

  • Содержимое сохраняется только для пользователя (например, примечания к себе)
  • Есть простой способ вернуться (например, включить или отключить тревогу)
  • Задача должна быть быстрой (например, быстро захватывать идею, прежде чем забыть)
  • Точность высока (например, простое меню)

Рекомендации по графическому интерфейсу и TTS для экранов подтверждения

Используйте текущее время.

Задайте пользователю однозначный вопрос, который можно ответить на "Да" или "Нет". Вопрос должен явно подтвердить, что пользователь пытается сделать, и не должно быть других очевидных вариантов.

Укажите вариант вопроса для повторного запроса, если голосовая команда не понимается в первый раз.

ГРАФИЧЕСКИЙ интерфейс. Если отображается сущность, используйте ссылку на нее. Если сущность не отображается, явным образом вызывает сущность.

TTS: для ясности всегда ссылайтесь на конкретный элемент или сущность, если она не была прочитана системой в предыдущем шаге.

Условия TTS Графический пользовательский интерфейс
СУЩНОСТЬ НЕ СЧИТЫВАЮТСЯ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ ИЛИ СУЩНОСТЬ, ПОКАЗАННАЯ НА ЭКРАНЕ Вы хотите отменить Технологическую конференцию Вегаса? Отмена этой поездки?
СУЩНОСТЬ НЕ СЧИТЫВАЮТСЯ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ ИЛИ НЕ ОТОБРАЖАЕТСЯ СУЩНОСТЬ Вы хотите отменить Технологическую конференцию Вегаса? Отмена технической конференции Вегаса?
ЧТЕНИЕ СУЩНОСТИ ПРИ ПРЕДВАРИТЕЛЬНОМ ВКЛЮЧЕНИИ / СУЩНОСТЬ НЕ ОТОБРАЖАЕТСЯ Вы хотите отменить эту поездку? Отмена этой поездки?
ПОВТОРНАЯ ПРОИМКА С ПОКАЗАННОЙ СУЩНОСТЬЮ Вы хотите отменить эту поездку? Вы хотите отменить эту поездку?
ПОВТОРНАЯ ПРОИМКА С СУЩНОСТЬЮ, НЕ ПОКАЗАННОЙ Вы хотите отменить эту поездку? Вы хотите отменить Технологическую конференцию Вегаса?

Устранение неоднозначности

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью AdventureWorks отмены диамбигуации поездкиDisambiguation AdventureWorks "Отмена поездки"

Для выполнения задачи может потребоваться выбрать пользователя из списка сущностей.

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

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

Рекомендации по графическому интерфейсу и TTS для экранов диамбигуации

Используйте текущее время.

Задайте пользователю однозначный вопрос, который можно ответить с заголовком или текстовой строкой любой сущности, отображаемой.

Можно отобразить до 10 сущностей.

Каждая сущность должна иметь уникальное название.

Укажите вариант вопроса для повторного запроса, если голосовая команда не понимается в первый раз.

TTS: для ясности всегда ссылайтесь на конкретный элемент или сущность, если он не говорился на предыдущем шаге.

TTS: не считывайте список сущностей, если нет трех или меньше, и они коротки.

Условия TTS Графический пользовательский интерфейс
ЗАПРОС — 3 ИЛИ МЕНЬШЕ ЭЛЕМЕНТОВ Какая поездка в Вегасе вы хотите отменить? Вегас Tech Conference or Party в Вегасе? Какой из них вы хотите отменить?
ЗАПРОС — БОЛЕЕ 3 ЭЛЕМЕНТОВ Какая поездка в Вегасе вы хотите отменить? Какой из них вы хотите отменить?
REPROMPT Какая поездка в Вегасе вы хотите отменить? Какой из них вы хотите отменить?

Completion

Снимок экрана: холст Кортаны для завершения фонового потока приложения Cortana с помощью AdventureWorks отмены завершения поездкиЗавершение AdventureWorks "Отмена поездки"

При успешном завершении задачи приложение должно сообщить пользователю, что запрошенная задача успешно завершена.

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

Чтобы запустить приложение в соответствующем состоянии, необходимо указать ссылку на приложение с параметрами запуска. Это позволяет пользователю просматривать или выполнять задачу самостоятельно. Кортана предоставляет текст ссылки (например, "Перейти к Adventure Works").

Рекомендации по графическому интерфейсу и TTS для экранов завершения

Используйте прошлое время.

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

Если сущность отображается или она была указана на предыдущий поворот, ссылаются только на нее.

Условия TTS Графический пользовательский интерфейс
СУЩНОСТЬ ПОКАЗАНА / СУЩНОСТЬ СЧИТЫВАЕМАЯ НА ПРЕДЫДУЩЕМ ШАГЕ Я отменил эту поездку. Отменена эта поездка.
СУЩНОСТЬ НЕ ПОКАЗАНА/ СУЩНОСТЬ НЕ СЧИТЫВАЮТСЯ ПРИ ПРЕДЫДУЩЕЙ ОЧЕРЕДИ Я отменил вашу поездку в Вегасе Tech Conference. Отменена "Вегас Tech Conference".

Ошибка

Снимок экрана: холст Кортаны для завершения фонового потока приложения Кортаны с помощью ошибки отмены поездки AdventureWorksОшибка AdventureWorks "Отмена поездки"

При возникновении одной из следующих ошибок Кортана отображает одно и то же универсальное сообщение об ошибке.

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