VCD(음성 명령 정의) 요소 및 특성 v1.2

참고

소비자 및 기업용 Cortana Skills Kit 이러한 플랫폼에서 구축된 기술은 더 이상 사용되지 않습니다.

인식 제약 조건을 지정하기 위해 VCD(음성 명령 정의) 파일에 사용되는 XML 태그 요소 및 특성에 대한 참조 설명서입니다.

음성 명령을 사용하여 앱을 시작하고 실행할 작업 또는 명령을 지정합니다. 예를 들어 사용자는 시작 단추를 탭하고 "Contoso 위젯, 베스트 셀러 표시"라고 말하여 Contoso Widgets 앱을 시작하고 "베스트 셀러" 페이지로 이동할 수 있습니다.

요소 및 특성

XML 파일과 마찬가지로 VCD 파일은 XML 버전과 문자 인코딩을 모두 지정하는 XML 선언으로 시작해야 합니다.

<?xml version="1.0" encoding="utf-8"?>

루트 요소는 VoiceCommands 요소이며 해당 xmlns 특성은 (대문자 없음)으로 http://schemas.microsoft.com/voicecommands/1.2 설정해야 합니다. 이 스키마를 준수하는 예제는 Cortana 음성 명령 샘플을 참조하세요.

요소 Description
VoiceCommands 필수 사항입니다. VCD 파일의 루트 요소입니다. 각각 단일 언어의 음성 명령을 나타내는 1~15개의 CommandSet 요소를 포함합니다.
CommandSet VoiceCommands 요소의 필수 자식 요소입니다. 앱이 필요한 xml:lang 특성으로 지정된 언어로 수락하는 모든 음성 명령에 대한 컨테이너입니다.

xml:lang 특성의 값은 VoiceCommand 문서에서 고유해야 하며, 음성 제어판에서 사용할 수 있는 언어에 해당하는 언어 이름 양식에 지정된 단일 특정 언어입니다.

참고 VCD 파일에 지정되었지만 시스템에서 지원되지 않는 언어는 무시됩니다.

Name 특성은 선택 사항이며 임의의 문자열일 수 있습니다. 그러나 CommandSet 요소의 PhraseList를 프로그래밍 방식으로 참조하고 업데이트하려면 Name 특성이 필요합니다. CommandSet 요소에는 CommandPrefix(0 또는 1) 또는 AppName(0 또는 1), Example(정확히 1), Command(1~100), PhraseList 요소(0~10) 및 PhraseTopic 요소(0~10)가 포함됩니다. 이러한 자식 요소는 나열된 순서대로 발생해야 합니다.

상호 배타적 CommandPrefix

CommandSet 요소의 선택적 자식 요소입니다. 있는 경우 CommandSet 요소의 첫 번째 자식 요소여야 합니다.

음성 명령을 제공할 때 사용자가 말할 수 있는 앱의 사용자 친화적인 이름을 지정합니다. 이는 이름이 길거나 발음하기 어려운 앱에 유용합니다.

다른 음성 지원 환경과 충돌하는 접두사를 사용하지 않습니다.

AppName

CommandSet 요소의 선택적 자식 요소입니다. 있는 경우 CommandSet 요소의 첫 번째 자식 요소여야 합니다.

CommandPrefix를 대체하고 ListenFor 요소의 RequireAppName 특성 및 {builtin:AppName} 구를 지원합니다.

음성 명령을 제공할 때 사용자가 말할 수 있는 앱의 사용자 친화적인 이름을 지정합니다. 이는 이름이 길거나 발음하기 어려운 앱에 유용합니다.

다른 음성 지원 환경과 충돌하는 접두사를 사용하지 않습니다.

기본적으로 AppName 은 음성 명령에서 접미사로 지원됩니다.

명령

CommandSet 요소의 필수 자식 요소입니다.

Name 특성을 사용합니다. 사용자가 말하기를 통해 시작할 수 있는 앱 작업과 사용자가 작업을 시작하기 위해 말할 수 있는 내용을 정의합니다. 각 Command 요소는 앱의 특정 페이지와 연결할 수 있습니다. 예제(정확히 1), ListenFor(1~20), 피드백(정확히 1) 및 탐색(정확히 1)과 같은 필수 자식 요소가 포함되어 있습니다. 이러한 자식 요소는 나열된 순서대로 발생해야 합니다.

예제 CommandSet 요소(정확히 1)와 Command 요소(1~20)의 필수 자식입니다. 사용자가 CommandSet 전체 및 개별 명령에 대해 말할 수 있는 내용의 대표적인 예를 제공합니다. 이러한 예제는 내가 말할 수 있는 내용 화면에서 사용자에게 표시됩니다. 이 화면은 사용자가 검색 단추를 누르고(Windows 휴대폰에서) Cortana 를 호출하고 "도움말" 또는 "내가 무슨 말을 할 수 있나요?"라고 말하거나 자세히 보기를 탭할 때 나타납니다.

참고 예제에는 AppName 또는 CommandPrefix가 포함되어야 합니다.

ListenFor

Command 요소의 필수(1~20) 자식 요소입니다.

앱이 이 명령에 대해 인식할 단어 또는 구를 포함합니다. 여기에는 {myList}, {myTopic}과 같이 중괄호로 묶인 ListenFor 요소에 표시되는 PhraseList(또는 PhraseTopic) 요소의 Label 특성에 대한 참조가 포함되거나 참조될 수 있습니다.

ListenFor 요소의 콘텐츠를 인식하여 명령을 활성화할 수 있습니다.

선택적 RequireAppName 특성을 지정하여 AppName 요소의 값을 ListenFor 요소와 함께 앞에 추가, 추가 또는 인라인으로 사용할 수 있는지 여부를 나타낼 수 있습니다.

이 특성은 다음 네 가지 값을 지원합니다.

  • BeforePhrase

    사용자는 ListenFor 구 앞에 AppName을 말해야 합니다.

  • AfterPhrase

    사용자는 "In|켜기|Using|With" AppNameListenFor 구 다음에 있습니다.

  • BeforeOrAfterPhrase

    사용자는 ListenFor 구 앞이나 뒤의 AppName을 말해야 합니다.

  • ExplicitlySpecified

    AppName은 를 사용하여 {builtin:AppName}ListenFor에서 명시적으로 참조됩니다. 사용자는 ListenFor 구 전후에 AppName을 말할 필요가 없습니다.

선택 사항인 단어 또는 단어 주위에 대괄호를 사용합니다. 즉, 단어 또는 단어를 말할 수 있지만 일치에 필요하지는 않습니다. <ListenFor>[Show] {options}</ListenFor>)을 입력합니다.

과 같은 <ListenFor> Find {*} </ListenFor>중괄호 쌍 내에 별표 문자를 포함하여 와일드카드 기능을 설정할 수 있습니다. 이 예제에서 음성 명령은 사용자가 "찾기"를 말하고 필요에 따라 다른 단어나 구가 오는 한 일치합니다. 와일드카드 사용 ListenFor 요소에 대한 음성 명령이 일치하면 SpeechRecognitionResult.Text 속성에 "..." 문자열이 포함됩니다. 와일드카드와 동일한 위치에 있습니다.

피드백 Command 요소의 필수 자식 요소입니다. 명령이 인식될 때 표시되고 사용자에게 다시 읽을 텍스트를 지정합니다. Feedback 요소에 PhraseList(또는 PhraseTopic) 요소의 Label 특성에 대한 참조가 포함된 경우 포함하는 Command 요소의 모든 ListenFor 요소도 PhraseList(또는 PhraseTopic) 요소의 동일한 Label 특성을 참조해야 합니다.
상호 배타적 이동Command 요소에 VoiceCommandService 자식 요소가 없는 한 Command 요소의 필수 자식 요소입니다. 대상 특성은 선택 사항이며 일반적으로 앱이 시작될 때 탐색해야 하는 페이지를 지정하는 데 사용됩니다. "NavigationTarget" 키를 사용하여 SpeechRecognitionSemanticInterpretation.Properties 사전에서 Target 특성 값(또는 대상 특성을 생략하는 경우 빈 문자열)을 가져올 수 있습니다.
VoiceCommandService Command 요소에 Navigate 자식 요소가 없는 한 Command 요소의 필수 자식 요소입니다. 이 요소는 Cortana 캔버스에 피드백이 표시된 앱 서비스(Windows.ApplicationModel.AppService 참조)를 통해 음성 명령이 처리되도록 지정합니다. Target 특성은 필수이며 앱 패키지 매니페스트에서 AppService 요소의 Name 특성 값과 일치해야 합니다.
PhraseList

CommandSet 요소의 선택적 자식입니다. 하나의 CommandSet 요소에는 2,000개 이하의 Item 요소가 포함될 수 있으며, 2,000개의 Item 요소는 CommandSet의 모든 PhraseList 요소에서 결합된 총 한도입니다. 각 항목PhraseList를 참조하는 명령을 시작하기 위해 인식할 수 있는 단어 또는 구를 지정합니다. 항목 콘텐츠는 애플리케이션 내에서 프로그래밍 방식으로 업데이트될 수 있습니다. PhraseList에는 ListenFor 또는 Feedback 요소 내부에 중괄호로 묶은 레이블 특성이 필요하며 PhraseList를 참조하는 데 사용됩니다.

PhraseList에는 목록의 여러 항목이 동시에 인식될 때 이 PhraseList가 사용자 명확성을 생성할지 여부를 지정하는 선택적 Disambiguate 특성(기본값 true)이 있습니다. false이면 이 PhraseList피드백 요소 내에서도 사용할 수 없으며 애플리케이션에 대한 매개 변수를 생성하지 않습니다. 이는 같은 말을 하는 다른 방법이지만 특정 작업이 필요하지 않은 구에 유용합니다.

앱에서 목록에서 어떤 구가 사용되었는지 알아보려면 PhraseList레이블과 동일한 값을 가진 키를 사용하여 SpeechRecognitionSemanticInterpretation.Properties 사전에 액세스할 수 있습니다.

항목 PhraseList 요소의 선택적 자식입니다. 명령을 시작하기 위해 인식할 수 있는 여러 단어 또는 구 중 하나입니다. CommandSet은 모든 자식 PhraseList 요소에서 2,000개 이하의 Item 요소를 포함할 수 있습니다.
PhraseTopic

CommandSet 요소의 선택적 자식입니다. 대용량 어휘 인식에 대한 토픽을 지정합니다. 토픽은 단일(0 또는 1) 시나리오 특성과 시나리오에 대한 여러 (0~20) 주체 자식 요소를 지정할 수 있으며, 이는 달성된 인식의 관련성을 개선하는 데 사용될 수 있습니다. PhraseTopic에는 ListenFor 또는 Feedback 요소 내에 중괄호로 묶인 레이블 특성이 필요하며 PhraseTopic을 참조하는 데 사용됩니다.

Scenario 특성(기본값 "받아쓰기")은 PhraseTopic을 사용하여 음성 명령의 기본 음성 인식을 최적화하여 명령의 원하는 컨텍스트에 더 적합한 결과를 생성할 수 있는 이 PhraseTopic에 원하는 시나리오를 지정합니다. 유효한 값은 "자연어", "검색", "짧은 메시지", "받아쓰기", "명령" 및 "양식 채우기"입니다.

Subject 자식 요소는 PhraseTopic을 사용하여 음성 명령 내에서 음성 인식 결과의 관련성을 더욱 구체화하기 위해 부모 PhraseTopicScenario 특성과 관련된 제목을 지정합니다. 주체는 제공된 순서대로 평가되며, 적절한 경우 나중에 지정한 주제는 이전에 지정한 과목을 제한합니다. 유효한 내부 텍스트 값은 "날짜/시간", "주소", "도시/상태", "사람 이름", "영화", "음악" 및 "전화 번호"입니다. 예: <Subject>Phone Number</Subject>

앱에서 PhraseTopic 참조로 표시되는 ListenFor 요소의 하위 집합에서 말한 콘텐츠를 찾으려면 PhraseTopic레이블과 동일한 값을 가진 키를 사용하여 SpeechRecognitionSemanticInterpretation.Properties 사전에 액세스할 수 있습니다.

중요

아래에 나열된 특수 문자를 중첩할 수 없습니다. 예를 들어 및 [{myPhraseList}] 와 같은 [[start] new game] 문은 사용할 수 없습니다.

특수 문자 Description
{} 참조할 PhraseList 또는 PhraseTopicLabel 특성 값(예: {myList}또는 {myTopic})을 포함합니다. ListenFor 또는 Feedback 요소 내에서 사용됩니다. Feedback 요소의 PhraseList 또는 PhraseTopic 참조는 동일한 명령의 ListenFor 요소에 있는 해당 참조와 일치해야 합니다.
[]묶은 단어 또는 구가 선택 사항임을 지정합니다. 묶은 단어나 구문은 말할 수 있지만 명령을 시작하기 위해 인식할 필요는 없습니다. 예를 들어 ListenFor 요소의 콘텐츠가 "[start] [begin] new game"인 경우 사용자는 "새 게임 시작" 또는 "새 게임 시작" 또는 "새 게임 시작"(또는 "새 게임 시작")을 말하여 명령을 시작할 수 있습니다. 대괄호로 묶인 각 요소는 독립적으로 선택 사항이지만 인식하려면 올바른 순서로 말해야 합니다. 따라서 "새 게임 시작" 예제에서는 "새 게임 시작"이 작동하지만 "새 게임 시작"은 선언된 순서 때문에 작동하지 않습니다.

추가 정보

Windows.ApplicationModel.VoiceCommands

Cortana 조작

샘플
Cortana 음성 명령 샘플