2017-02-17 5 views
1

VehicleIdentificationNumber (VIN)로 자동차를 필터링해야하는 UWP 앱을 만들고 있습니다. 이 VIN은 17 자 긴 문자열입니다. 그것은 모든 위치에 숫자와 문자를 포함 할 수 있습니다.Cortana가 이해할 수있는 Phraselist에서 패턴 만들기

사용자는 어떻게이 사용자가 17 문자의 긴 문자열을 지정하도록 할 수 있습니까? Cortana는이를 올바르게 이해할 수 있습니까? 일부 테스트에서는 Cortana가 언젠가 숫자를 이해하고 두 번째 시도에서 "3"이라고 쓰는 것으로 나타났습니다. 이자형.

배경 서비스를 호출하는 것보다 내 VCD 파일에있는 행입니다. BackgroundService에서 VehicleIdentificationNumber에서 나가는 결과는 "..."입니다.

<Command Name="selectedSpecificVehicleByVIN"> 
    <Example>Fahrzeug nach VIN WAUZZZ8V5EA012963 filtern</Example> 
    <ListenFor RequireAppName="BeforeOrAfterPhrase">Fahrzeug nach VIN {VehicleIdentificationNumber} filtern</ListenFor> 
    <Feedback>Suche nach Fahrzeug mit VIN {VehicleIdentificationNumber}</Feedback> 
    <VoiceCommandService Target="VehicleSelectionService"/> 
</Command> 

는 그리고 내 PhraseTopic은 다음과 같습니다

<PhraseTopic Label="VehicleIdentificationNumber" Scenario="Dictation" /> 

답변

3

이 사례에 대한 답변을 찾았습니다. 아주 간단했습니다. 나는 PhraseTopic에 2 개의 과목 만 추가해야했습니다.

<PhraseTopic Label="VehicleIdentificationNumber" Scenario="Dictation"> 
    <Subject>Characters</Subject> 
    <Subject>Alphabet</Subject> 
</PhraseTopic> 

작은 문제 중 하나는 Cortana가 철자가있는 VIN 내부에 공백을 추가한다는 것입니다. 간단한 문자열 조작으로 제거 할 수 있습니다.

희망 나는 동일한 문제가있는 누군가를 도울 수 있기를 바랍니다.

+1

"Dictation"시나리오는 마지막으로 보았을 때 어떤 문서도 없었습니다. 이것은 내 자신의 응용 프로그램을 상당히 도움이 될 것입니다. –

1

난 당신이 제공하는 문자열 응답을 받아 자리 숫자 텍스트를 변환 할 파서를 작성했다. 한 번에 한 자리 수를 수행한다면 너무 나빠서는 안됩니다.

대부분의 사람들이 개별적으로 말하기 때문에 각 숫자/문자에 대한 목표를 만들 수도 있습니다. 그런 다음 PhraseTopic을 사용하는 대신 Phraselist를 사용하여 목록에 각 자릿수와 글자를 입력하십시오.

+1

두 번째 조언을 테스트했습니다. 자세한 정보 : PhraseList를 사용하고 각 숫자/문자를 내부에 넣으면 작동하지 않습니다. 왜냐하면 VCD에서는 매번 첫 번째 발생 항목 만 사용되기 때문입니다. 나는 B ... 내이 모든 위치에있는 W을하고 VIN를 검색합니다 .. VIN이 WVWxxxxx입니다 말하는 "WWWWWWWWWWWWWW"와 같은이 PhraseList를 만들 그래서 경우 . 그리고 각 디지트에 대해 별도의 Phraselist를 만들면 명령 세트 당 Phraselist의 양은 10보다 길어집니다. 첫 번째 조언이 제대로 작동하는지 확인합니다. – TiMeJuMp