使用cortana解析数字

时间:2015-11-26 14:51:47

标签: c# windows-10 uwp cortana windows-10-universal

我有一个Cortana XML文件,我需要输入一个数字。我该怎么做以确保我可以将其转换为数字?

<Command Name="AddMoney">
  <Example> Add 10 dollars </Example>
  <ListenFor> add {amount} {currency} </ListenFor>
  <Feedback> Adding some money </Feedback>
  <Navigate/>
</Command>

<PhraseList Label="currency">
    <item>dollar</item>
    <item>euro</item>
    <item>pound</item>
</PhraseList>

<PhraseList Label="amount">
</PhraseList>

1 个答案:

答案 0 :(得分:4)

我找到了接收数字的方法,但这并不完美。

<PhraseTopic Label="amount" Scenario="Commands">
  <Subject>Phone Number</Subject>
</PhraseTopic>

注意我使用 PhraseTopic 而不是 PhraseList 。我真的不知道哪个Scenario在这里最好,但我发现Commands比没有Scenario设置更好的结果。由于某些奇怪的原因,PhraseTopic标签必须放在所有PhraseList标签之后......

在尝试主题时,自动完成功能会显示一些选项,其中最有希望的是Date/TimeAddressesPhone Number。当尝试多个科目时,我永远不会有匹配,但使用&#34;电话号码&#34; (或者只是&#34;数字&#34;即使没有这样的选项)我能够一致地接收数字值。

这个数字是以数字形式出现的,所以我只需要int.TryParse(myText, out myNumber)并使用它或说出一些&#34;无效数字输入&#34;。

请注意,即使主题和场景限制,也可以输入任何内容......下面的内容将有效:

"Hey Cortana, MyAppName add blah blah blah dollars"

金额实际上是"blah blah blah"