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 中修复。
希望对您有所帮助。
在尝试实现 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 中修复。
希望对您有所帮助。