UWP 语音命令集不适用于多个短语

UWP Voice Command Set not working with multiple phrases

在尝试实现 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 似乎只能识别 last 短语。所以如果我使用 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 for {search}'时,它正确地returns得到了正确的结果。但是对于我正在实现的这个功能,我需要在一个命令中使用 2 个(甚至 3 个)短语。

UWP 好像只识别最后一个短语。我是正确的还是应该可以在 ListenFor 元素中使用多个短语?

2016 年 6 月 13 日更新:

我创建了一个 repro:

没有 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 而感到困惑。

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

希望对您有所帮助。