2015-11-26 16 views
6

Ich habe eine Cortana-XML-Datei und ich muss eine Nummer eingeben. Was muss ich tun, um sicherzustellen, dass ich es in eine Nummer umwandeln kann?Parse-Nummer mit Cortana

<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> 

Antwort

4

Ich habe einen Weg gefunden, Zahlen zu empfangen, aber es ist nicht perfekt.

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

Hinweis Ich verwende PhraseTopic statt PhraseList. Ich weiß nicht wirklich, welche Scenario ist die beste hier, aber ich fand Commands, bessere Ergebnisse zu liefern, als ohne Scenario Set. Die PhraseTopic Tag muss aus irgendeinem Grund nach allen PhraseList Tags platziert werden ...

Wenn Probanden versuchen, das Auto-Vervollständigen-Funktion ein paar Optionen zeigte, wo die vielversprechendsten waren Date/Time, Addresses und Phone Number. Beim Versuch mit mehreren Fächern konnte ich nie eine Übereinstimmung finden, aber mit "Telefonnummer" (oder nur "Nummer", selbst wenn es keine solche Option gibt) konnte ich Zahlenwerte einigermaßen konsistent erhalten.

Die Nummer kommt in Ziffernform, also brauche ich nur int.TryParse(myText, out myNumber) und benutze es oder sage etwas wie "ungültige Zahleneingabe".

bewusst sein, dass jede Sache Eingang hier sein kann, auch mit dem Motiv und das Szenario Einschränkungen ... Die folowing funktioniert:

"Hey Cortana, MyAppName add blah blah blah dollars" 

Und die Menge wird buchstäblich sein "blah blah blah"