在Cortra可以理解的Phraselist中创建模式

时间:2017-02-17 09:40:55

标签: uwp windows-10 text-to-speech voice-recognition cortana

我正在开发一款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" />

2 个答案:

答案 0 :(得分:3)

我找到了这个案子的答案。 这很简单。我只需要在我的PhraseTopic中添加两个主题。

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

一个小问题是,Cortana在拼写的VIN中添加了一些空格。这可以通过简单的字符串操作删除。

希望我能帮助有同样问题的人。

答案 1 :(得分:1)

我必须编写一个解析器,它将获取您提供的字符串响应并将数字文本转换为数字。如果您一次只做一位数,那就太糟糕了。

您也可以尝试为每个数字/字母创建一个目标,因为大多数人会单独说出它们。然后,使用Phraselist而不是使用PhraseTopic,并将每个数字和字母放在列表中。