J'écris une application WPF qui doit reconnaître les commandes vocales de l'utilisateur. Étant nouveau pour le moteur de reconnaissance vocale, je ne suis pas sûr de la façon dont je peux accomplir ce dont j'ai besoin pour faire le meilleur chemin possible. Le flux de l'application serait la suivante:Moteur de reconnaissance vocale Décompresser une commande
- utilisateur parle un mot clé « Awaken » l'application (ex Amazon Echo demander à l'utilisateur de dire « Alexa »)
- utilisateur parle la commande pour l'application de effectuer (ex "Jouer 'une chanson par un artiste'")
Mon problème est que je ne sais pas quoi faire avec mon programme après la reconnaissance du mot-clé. Si je devais jouer la chanson que l'utilisateur dit après que le mot-clé est parlé, aurais-je besoin de commencer un nouveau reconnaissance de la parole? Ceci est un code psuedo de ce que je fais:
private SpeechRecognitionEngine _listen;
public frmHome()
{
InitializeComponent();
SetupListen();
}
private void SetupListen()
{
ResetListener();
}
private void ResetListener()
{
_listen = new SpeechRecognitionEngine();
Choices exChoices = new Choices();
exChoices.Add(new String[] { "keyword" });
GrammarBuilder gb = new GrammarBuilder();
gb.Append(exChoices);
Grammar g = new Grammar(gb);
_listen.LoadGrammar(g);
_listen.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sr_speechRecognized);
_listen.SetInputToDefaultAudioDevice();
_listen.RecognizeAsync();
}
private void sr_speechRecognized(object sender, SpeechRecognizedEventArgs e)
{
if (e.Result.Text.Equals("keyword"))
{
//start listening for the command
}
ResetListener();
}