私は数日間、さまざまなテスト プログラムを使用して音声認識を少し使用してきましたが、すべて正常に機能しました。ただし、OpenGL プロジェクトに実装しようとしましたが、関数「認識済み」が呼び出されなくなりました。
Windows Speech Recognition のもの (「'Start Listening' と言ってみてください」という言葉が非常に多い) では、読み込んだ単語は、私が話すと表示されるので、単語を正しく検出していると仮定しています。イベントをトリガーしない理由。
これが私が使用しているコードです。あなたが本当に知る必要があるのは(コードに示されているものに加えて)、 AddCommands が別の場所で呼び出され、私がテストしてきたいくつかの単語を追加し、フォームの読み込み時に「開始」が呼び出されることです.
public class SpeechControls
{
public static SpeechRecognizer sRecognizer;
private static Dictionary<string, IVoiceControlable> controllers = new Dictionary<string, IVoiceControlable>();
public static void Initiate()
{
sRecognizer = new SpeechRecognizer();
sRecognizer.Enabled = true;
sRecognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(Recognized);
}
private static void Recognized(object obj, SpeechRecognizedEventArgs args)
{
controllers[args.Result.Text].TriggerCommand(args.Result.Text);
}
public static void AddCommands(string[] commands, IVoiceControlable control)
{
foreach (string str in commands)
{
controllers.Add(str, control);
}
sRecognizer.LoadGrammar(new Grammar(new GrammarBuilder(new Choices(commands))));
}
}
「認識済み」がトリガーされない理由を知っている人はいますか?
ご協力いただきありがとうございます。