0
Ich habe den folgenden Code, um die Spracherkennung Bibliothek:Gespräch mit C# Speech Bibliothek
var listen = new SpeechRecognitionEngine();
var reader = new Choices(File.ReadLines(@"C:\words.txt")
listen.LoadGrammar(new Grammar(new GrammarBuilder(reader)));
listen.SpeechRecognized += listen_SpeechRecognized;
listen.SpeechRecognitionRejected += listen_SpeechRecognitionRejected;
listen.SetInputToDefaultAudioDevice();
listen.RecognizeAsync(RecognizeMode.Multiple);
Und ich habe einen Ereignis-Listener so ...
static void listen_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
var talk = new SpeechSynthesizer();
if (e.Result.Text == "Search Stock Symbol")
{
talk.Speak("What symbol?");
//Do I have to create another event listener?
//a Listener .. symbol = a.Result.Text
//talk.Speak(GetQuote(symbol))
{
}
Hätte ich eine erstellen Ereignis-Listener für jeden Teil der "Konversation"? Gibt es einen besseren Weg, wenn das der Fall ist?
Beispiel Gespräch:
- Me: Suchen Stock-Symbol
- Computer: Was Symbol?
- Me: AAPL
- Computer: Apple Handel an ....
Würde das funktionieren, wenn "AAPL" nicht in dictionary.txt ist? Ich habe Ihren Code ausprobiert und es scheint nicht zu funktionieren. Dies ist der Code, den ich ausprobiert habe: http://pastebin.com/Jpkz8Xu9 –
Oh, ich sehe, der Mangel an Standard im Switch-Fall behoben. Beachten Sie auch die erfundene Funktion getStockPrice –
Ja, ich weiß, dass die Funktion erfunden ist. Aber das Problem dabei ist, dass e.Result.Text immer == "Search Stock Symbol" ist. Dies funktioniert nur, wenn "Search Stock Symbol" in der Liste ist. –