UWP语音命令集不能使用多个短语

时间:2016-06-09 17:29:23

标签: win-universal-app uwp voice cortana

在尝试实现VoiceCommands时,我使用了这个集合:

<Command Name="searchCommand">
  <Example>Search for UWP on Bing </Example>
  <ListenFor RequireAppName="BeforeOrAfterPhrase"> search for {search} on {service} </ListenFor>
  <Feedback>Searching for {search} on {service}</Feedback>
  <Navigate />
</Command>

我添加了这些短语(服务在代码中动态更新,这一切都正常):

<PhraseList Label="service">
  <!-- Dynamic -->
</PhraseList>

<PhraseTopic Label="search" Scenario="Search">
  <!-- Dynamic -->
</PhraseTopic>

现在,当我使用此命令时,API似乎只识别最后短语。因此,如果我使用3个短语,则只会识别最后一个短语。

Command:          'Search for UWP on Bing'
Shows up as:      'Searching for {search} on Bing'
TextSpoken value: 'Search for UWP on Bing' (so the voice to text is working correctly)

当我在ListenFor中使用“搜索{search}”时,它会正确返回正确的结果。但是对于这个功能,我正在实现我在一个命令中需要2个(甚至3个)短语。

似乎UWP只识别最后一个短语。我是否正确或是否可以在ListenFor元素中使用多个短语?

2016年6月13日更新:

我创建了repro

Cortana Bug repro screenshot

2 个答案:

答案 0 :(得分:2)

Geert,看起来你正在使用Windows Insider build 14342.你看到的问题是由于build 14341中引入了一个错误,应该在build&gt; = 14371中修复。

希望有所帮助。

答案 1 :(得分:0)

没有UWP识别ListenFor

中的多个短语

我猜你需要多个ListenFor

 <Command Name="searchCommand">
      <Example>Search for UWP on Bing </Example>
      <ListenFor RequireAppName="BeforeOrAfterPhrase"> search for {search} on {service} </ListenFor>
<ListenFor RequireAppName="BeforeOrAfterPhrase">search for {search}</ListenFor>
<ListenFor RequireAppName="BeforeOrAfterPhrase">search for on {service}</ListenFor>
      <Feedback>Searching for {search} on {service}</Feedback>
      <Navigate />
    </Command>

通过这种方式,您可以覆盖所有组合。我猜Cortana因为只有一个ListenFor而感到困惑。