Взаимодействие с речью

Интеграция распознавания речи и преобразования текста в речь (также известного как TTS или синтез речи) непосредственно в взаимодействие с пользователем вашего приложения.

Распознавание речи распознавания речи преобразует слова, произнесенные пользователем, в текст для ввода формы, для диктовки текста, для указания действия или команды и выполнения задач. Поддерживаются предопределенные грамматики для диктовки без текста и веб-поиска, а также пользовательские грамматики, созданные с помощью спецификации грамматики распознавания речи (SRGS) версии 1.0.

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

Другие компоненты, связанные с речью:Кортана в приложениях Windows, используют настраиваемые голосовые команды (произнесенные или типизированные) для запуска приложения на переднем плане (приложение принимает фокус, как если бы оно было запущено из меню ) или активировать как фоновую службу (Кортана сохраняет фокус, но предоставляет результаты из приложения). См . сведения о взаимодействии Кортаны в приложениях Windows.

Проектирование взаимодействия с речью

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

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

Если вы рассматриваете возможность поддержки взаимодействия с речью в приложении:

  • Какие действия можно предпринять с помощью речи? Может ли пользователь перемещаться между страницами, вызывать команды или вводить данные в виде текстовых полей, кратких заметок или длинных сообщений?
  • Подходит ли входная речь для выполнения задачи?
  • Как пользователь знает, когда доступны входные данные речи?
  • Всегда ли приложение прослушивает или требуется ли пользователю выполнить действие, чтобы приложение ввело режим прослушивания?
  • Какие фразы инициируют действие или поведение? Нужно ли перечислять фразы и действия на экране?
  • Требуются ли экраны запроса, подтверждения и диамбигуации или TTS?
  • Что такое диалоговое окно взаимодействия между приложением и пользователем?
  • Требуется ли пользовательский или ограниченный словарь (например, медицина, наука или языковой стандарт) для контекста приложения?
  • Требуется ли сетевое подключение?

Ввод текста

Речь для ввода текста может варьироваться от короткой формы (одного слова или фразы) до длинной формы (непрерывная диктовка). Короткие входные данные формы должны быть менее 10 секунд в длину, в то время как длительный сеанс ввода формы может составлять до двух минут. (Длинные входные данные формы можно перезапустить без вмешательства пользователя, чтобы создать впечатление о непрерывной диктовки.)

Необходимо указать, что распознавание речи поддерживается и доступно для пользователя, и следует ли включить его пользователю. Например, можно использовать кнопку панели команд с глифом микрофона (см . панели команд) для отображения доступности и состояния.

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

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

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

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

Отключите весь пользовательский интерфейс непрерывного распознавания и завершите сеанс распознавания, если сетевое подключение недоступно. Для непрерывного распознавания требуется сетевое подключение.

Система команд

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

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

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

Запрос подтверждения от пользователя при низкой достоверности распознавания речи. Если намерение пользователя неясно, лучше получить уточнение, чем инициировать непреднамеренное действие.

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

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

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

Экраны зависят от указанных ограничений:

  • Предопределенная грамматика (диктовка или веб-поиск)

    • Экран прослушивания .
    • Экран мышления .
    • Экран "Услышано" или экран ошибки.
  • Список слов или фраз или файла грамматики SRGS

    • Экран прослушивания .
    • Экран сказал ли вы , если пользователь сказал, может быть интерпретирован как более одного потенциального результата.
    • Экран "Услышано" или экран ошибки.

На экране прослушивания можно:

  • Настройте текст заголовка.
  • Введите пример текста того, что может сказать пользователь.
  • Укажите, отображается ли экран "Услышанное"
  • Считывайте распознаваемую строку обратно пользователю на экране "Услышанные ".

Ниже приведен пример встроенного потока распознавания для распознавателя речи, использующего ограничение SRGS. В этом примере распознавание речи успешно выполнено.

Начальный экран распознавания для ограничения на основе файла грамматики sgrs

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

окончательный экран распознавания ограничения на основе файла грамматики sgrs

Всегда прослушивание

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

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

"Что можно говорить?"

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

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

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

Сбои распознавания

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

Обработайте ошибку корректно, помогите пользователю понять, почему сбой распознавания и восстановление.

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

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

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

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

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

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

Ограничения

Ограничения или грамматики определяют речевые слова и фразы, которые могут соответствовать распознаватель речи. Вы можете указать одну из предопределенных грамматик веб-служб или создать пользовательскую грамматику, установленную с приложением.

Предопределенные грамматики

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

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

Примечание.

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

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

Пользовательские грамматики

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

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

  • Грамматика SRGS — это статический документ, который, в отличие от ограничения программного списка, использует формат XML, определенный SRGS версии 1.0. Грамматика SRGS обеспечивает наибольший контроль над интерфейсом распознавания речи, позволяя записывать несколько семантических значений в одном распознавании.

    Ниже приведены некоторые советы по созданию грамматик SRGS:

    • Держите каждую грамматику небольшой. Грамматики, содержащие меньше фраз, обычно обеспечивают более точное распознавание, чем более крупные грамматики, содержащие много фраз. Лучше иметь несколько небольших грамматик для конкретных сценариев, чем иметь одну грамматику для всего приложения.
    • Сообщите пользователям, что сказать для каждого контекста приложения и включить и отключить грамматики по мере необходимости.
    • Создайте каждую грамматику, чтобы пользователи могли говорить команду различными способами. Например, можно использовать правило МУСОРа для сопоставления входных данных речи, которые грамматика не определяет. Это позволяет пользователям говорить дополнительные слова, которые не имеют смысла для вашего приложения. Например, "дай мне", "и", "uh", "может быть", и т. д.
    • Используйте элемент sapi:subset для сопоставления входных данных речи. Это расширение Майкрософт для спецификации SRGS для сопоставления частичных фраз.
    • Старайтесь избежать определения фраз в грамматике, содержащей только один слог. Распознавание, как правило, более точно для фраз, содержащих два или более слогов.
    • Избегайте использования фраз, которые звучат аналогично. Например, такие фразы, как "hello", "bellow" и "коллега", могут запутать механизм распознавания и привести к плохой точности распознавания.

Примечание.

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

Пользовательские произношения

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

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

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

Тестирование

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

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

Преобразование текста в речь (TTS)

TTS создает выходные данные речи из обычного текста или SSML.

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

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

Вы должны предоставить элементы управления мультимедиа, чтобы разрешить пользователям приостановить или остановить TTS.

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

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

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

Раздел Описание
Распознавание речи Используйте распознавание речи для предоставления входных данных, указания действия или команды и выполнения задач.
Указание языка распознавателя речи Узнайте, как выбрать установленный язык для распознавания речи.
Определение ограничений пользовательского распознавания Узнайте, как определить и использовать пользовательские ограничения для распознавания речи.
Включение непрерывной диктовки Узнайте, как записывать и распознавать длинные и непрерывные входные данные речи диктовки.
Управление проблемами с входным звуком Узнайте, как управлять проблемами с точностью распознавания речи, вызванной качеством звука.
Настройка времени ожидания распознавания речи Задайте, сколько времени распознаватель речи игнорирует молчание или неузнаваемые звуки (робкие) и продолжает прослушивать входные данные речи.

 Примеры