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