음성 인식기 언어 지정

음성 인식에 사용할 설치된 언어를 선택하는 방법을 알아봅니다.

중요 API: SupportedTopicLanguages, SupportedGrammarLanguages, Language

여기서는 시스템에 설치된 언어를 열거하고, 기본 언어를 식별하고, 인식할 다른 언어를 선택합니다.

필수 구성 요소:

이 항목은 음성 인식을 기반으로 합니다.

음성 인식 및 인식 제약 조건에 대한 기본적인 이해가 있어야 합니다.

Windows 앱을 처음 개발하는 경우 다음 항목을 검토하여 여기서 설명하는 기술에 대해 알아보세요.

사용자 환경 지침:

유용하고 매력적인 음성 지원 앱을 디자인하는 방법에 대한 유용한 팁은 음성 디자인 지침을 참조하세요.

기본 언어 식별

음성 인식기에서는 시스템 음성 언어를 기본 인식 언어로 사용합니다. 이 언어는 디바이스 설정 > 시스템 > 음성 > 음성 언어 화면에서 사용자가 설정합니다.

SystemSpeechLanguage 정적 속성을 검사하여 기본 언어를 식별합니다.

var language = SpeechRecognizer.SystemSpeechLanguage; 

설치된 언어 확인

설치된 언어는 디바이스마다 다를 수 있습니다. 특정 제약 조건에 대해 언어를 사용하는 경우 언어의 존재를 확인해야 합니다.

참고 새 언어 팩을 설치한 후에는 다시 부팅해야 합니다. 지정된 언어가 지원되지 않거나 설치가 완료되지 않은 경우 오류 코드 SPERR_NOT_FOUND(0x8004503a)의 예외가 발생합니다.

 

SpeechRecognizer 클래스의 두 정적 속성 중 하나를 검사 디바이스에서 지원되는 언어를 확인합니다.

언어 지정

언어를 지정하려면 SpeechRecognizer 생성자에 언어 개체를 전달합니다.

여기서는 인식 언어로 "en-US"를 지정합니다.

var language = new Windows.Globalization.Language("en-US"); 
var recognizer = new SpeechRecognizer(language); 

설명

SpeechRecognizerConstraints 컬렉션에 SpeechRecognitionTopicConstraint를 추가한 다음 CompileConstraintsAsync를 호출하여 토픽 제약 조건을 구성할 수 있습니다. 인식기가 지원되는 토픽 언어로 초기화되지 않은 경우 TopicLanguageNotSupportedSpeechRecognitionResultStatus가 반환됩니다.

SpeechRecognizerConstraints 컬렉션에 SpeechRecognitionListConstraint를 추가한 다음 CompileConstraintsAsync를 호출하여 목록 제약 조건을 구성할 수 있습니다. 사용자 지정 목록의 언어를 직접 지정할 수 없습니다. 대신, 목록은 인식기의 언어를 사용하여 처리됩니다.

SRGS 문법은 SpeechRecognitionGrammarFileConstraint 클래스로 표현되는 개방형 표준 XML 형식입니다. 사용자 지정 목록과 달리 SRGS 태그에서 문법의 언어를 지정할 수 있습니다. 인식기가 SRGS 태그와 동일한 언어로 초기화되지 않은 경우 CompileConstraintsAsyncTopicLanguageNotSupportedSpeechRecognitionResultStatus로 실패합니다.

샘플