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


Указание языка распознавателя речи

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

Важные API: SupportedTopicLanguages, SupportedGrammarLanguages, Language

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

Необходимые условия:

Этот раздел основан на распознавании речи.

Вы должны иметь базовое представление о ограничениях распознавания речи и распознавания.

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

Рекомендации по работе с пользователем:

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

Определение языка по умолчанию

Распознаватель речи использует системный язык речи в качестве языка распознавания по умолчанию. Этот язык задается пользователем на экране языка речи системы распознавания речи системы речи > устройства > >.

Мы определяем язык по умолчанию, проверяя статическое свойство SystemSpeechLanguage .

var language = SpeechRecognizer.SystemSpeechLanguage; 

Подтверждение установленного языка

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

Обратите внимание, что перезагрузка требуется после установки нового языкового пакета. Исключение с кодом ошибки SPERR_NOT_FOUND (0x8004503a) возникает, если указанный язык не поддерживается или не завершена установка.

 

Определите поддерживаемые языки на устройстве, проверив одно из двух статических свойств класса SpeechRecognizer:

Указание языка

Чтобы указать язык, передайте объект 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.

Примеры