我正在开发一款UWP应用程序,该应用程序应按其VehicleIdentificationNumber(VIN)过滤汽车。这个VIN是一个17字符长的字符串。它可以包括每个位置上的数字和字母。
有没有人有一个想法,我怎么能让用户指示这个17-char长的字符串,Cortana会正确理解这个?一些测试显示,Cortana有时会理解数字,而在第二次尝试中,她将其写为“三”f。即
这是我的VCD-File中的行,而不是调用后台服务。在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" />
答案 0 :(得分:3)
我找到了这个案子的答案。 这很简单。我只需要在我的PhraseTopic中添加两个主题。
<PhraseTopic Label="VehicleIdentificationNumber" Scenario="Dictation">
<Subject>Characters</Subject>
<Subject>Alphabet</Subject>
</PhraseTopic>
一个小问题是,Cortana在拼写的VIN中添加了一些空格。这可以通过简单的字符串操作删除。
希望我能帮助有同样问题的人。
答案 1 :(得分:1)
我必须编写一个解析器,它将获取您提供的字符串响应并将数字文本转换为数字。如果您一次只做一位数,那就太糟糕了。
您也可以尝试为每个数字/字母创建一个目标,因为大多数人会单独说出它们。然后,使用Phraselist而不是使用PhraseTopic,并将每个数字和字母放在列表中。