用 cortana 解析数字
Parse number with cortana
我有一个 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>
我找到了一种接收号码的方法,但它并不完美。
<PhraseTopic Label="amount" Scenario="Commands">
<Subject>Phone Number</Subject>
</PhraseTopic>
注意我使用的是 PhraseTopic 而不是 PhraseList。我真的不知道这里哪个 Scenario
是最好的,但我发现 Commands
比没有设置 Scenario
产生更好的结果。由于某些奇怪的原因,PhraseTopic 标签必须放在所有 PhraseList 标签之后...
在尝试主题时,自动完成功能显示了几个选项,其中最有希望的是 Date/Time
、Addresses
和 Phone Number
。当尝试使用多个主题时,我永远无法匹配,但是使用 "Phone Number"(或者只是 "Number",即使没有这样的选项)我能够在某种程度上始终如一地接收数值。
该数字以数字形式出现,所以我只需要 int.TryParse(myText, out myNumber)
并使用它或说出 "invalid number input"。
请注意,这里可以输入任何内容,即使有主题和场景限制...以下内容将有效:
"Hey Cortana, MyAppName add blah blah blah dollars"
金额将是 "blah blah blah"
我有一个 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>
我找到了一种接收号码的方法,但它并不完美。
<PhraseTopic Label="amount" Scenario="Commands">
<Subject>Phone Number</Subject>
</PhraseTopic>
注意我使用的是 PhraseTopic 而不是 PhraseList。我真的不知道这里哪个 Scenario
是最好的,但我发现 Commands
比没有设置 Scenario
产生更好的结果。由于某些奇怪的原因,PhraseTopic 标签必须放在所有 PhraseList 标签之后...
在尝试主题时,自动完成功能显示了几个选项,其中最有希望的是 Date/Time
、Addresses
和 Phone Number
。当尝试使用多个主题时,我永远无法匹配,但是使用 "Phone Number"(或者只是 "Number",即使没有这样的选项)我能够在某种程度上始终如一地接收数值。
该数字以数字形式出现,所以我只需要 int.TryParse(myText, out myNumber)
并使用它或说出 "invalid number input"。
请注意,这里可以输入任何内容,即使有主题和场景限制...以下内容将有效:
"Hey Cortana, MyAppName add blah blah blah dollars"
金额将是 "blah blah blah"