Указание языка распознавателя речи
Узнайте, как выбрать установленный язык для распознавания речи.
Важные API: SupportedTopicLanguages, SupportedGrammarLanguages, Language
Здесь мы перечислим языки, установленные в системе, идентифицируем язык по умолчанию и выбираем другой язык для распознавания.
Необходимые условия:
Этот раздел основан на распознавании речи.
Вы должны иметь базовое представление о ограничениях распознавания речи и распознавания.
Если вы не знакомы с разработкой приложений Windows, ознакомьтесь с этими разделами, чтобы ознакомиться с технологиями, описанными здесь.
- Создание своего первого приложения
- Общие сведения о событиях с помощью событий и перенаправленных событий
Рекомендации по работе с пользователем:
Полезные советы по проектированию полезного и привлекательного приложения с поддержкой речи см . в рекомендациях по проектированию речи.
Определение языка по умолчанию
Распознаватель речи использует системный язык речи в качестве языка распознавания по умолчанию. Этот язык задается пользователем на экране языка речи системы распознавания речи системы речи > устройства > >.
Мы определяем язык по умолчанию, проверяя статическое свойство SystemSpeechLanguage .
var language = SpeechRecognizer.SystemSpeechLanguage;
Подтверждение установленного языка
Установленные языки могут различаться между устройствами. Необходимо проверить наличие языка, если он зависит от определенного ограничения.
Обратите внимание, что перезагрузка требуется после установки нового языкового пакета. Исключение с кодом ошибки SPERR_NOT_FOUND (0x8004503a) возникает, если указанный язык не поддерживается или не завершена установка.
Определите поддерживаемые языки на устройстве, проверив одно из двух статических свойств класса SpeechRecognizer:
SupportedTopicLanguages — коллекция объектов языка, используемых с предопределенной диктовкой и грамматиками поиска в Интернете.
ПоддерживаетсяGrammarLanguages— коллекция объектов языка, используемых с ограничением списка или файлом спецификации грамматики распознавания речи (SRGS).
Указание языка
Чтобы указать язык, передайте объект Language в конструкторе SpeechRecognizer .
Здесь мы указываем "en-US" в качестве языка распознавания.
var language = new Windows.Globalization.Language("en-US");
var recognizer = new SpeechRecognizer(language);
Замечания
Ограничение раздела можно настроить путем добавления объекта SpeechRecognitionTopicConstraint в коллекцию ограничений speechRecognizer, а затем вызова CompileConstraintsAsync. Функция SpeechRecognitionResultStatus объекта TopicLanguageNotSupported возвращается, если распознаватель не инициализирован с поддерживаемым языком тем.
Ограничение списка настраивается путем добавления объекта SpeechRecognitionListConstraint в коллекцию "Ограничения" средства speechRecognizer и последующего вызова CompileConstraintsAsync. Невозможно указать язык настраиваемого списка напрямую. Вместо этого список будет обработан с помощью языка распознавателя.
Грамматика SRGS — это формат XML с открытым стандартом, представленный классом SpeechRecognitionGrammarFileConstraint . В отличие от пользовательских списков, можно указать язык грамматики в разметке SRGS. КомпиляцияConstraintsAsync завершается ошибкой с помощью speechRecognitionResultStatus раздела TopicLanguageNotSupported , если распознаватель не инициализирован на том же языке, что и разметка SRGS.
Связанные статьи
Примеры
Windows developer