"show numbers"コマンドを使用して、ファイルの参照に音声認識を使用する必要があります。フォルダーブラウザダイアログを開いたときに音声認識機能を起動し、ブラウザーダイアログウィンドウが閉じると、音声認識機能を終了します。 音声認識装置をC#をコードビハインドで完全に閉じるにはどうしたらいいですか?完全に近い音声認識装置
EDIT:あなたは完全に近いWSRしたくないのはなぜsapisvr.exe
"show numbers"コマンドを使用して、ファイルの参照に音声認識を使用する必要があります。フォルダーブラウザダイアログを開いたときに音声認識機能を起動し、ブラウザーダイアログウィンドウが閉じると、音声認識機能を終了します。 音声認識装置をC#をコードビハインドで完全に閉じるにはどうしたらいいですか?完全に近い音声認識装置
EDIT:あなたは完全に近いWSRしたくないのはなぜsapisvr.exe
を殺すために: 私は私の問題のための「醜い」解決策を見つけましたか?起動してシャットダウンするにはかなりの時間がかかります。 CoR(共有認識装置インスタンス(CLSID_SpSharedRecognizer))を作成し、認識装置の状態をSPRST_INACTIVEに設定することにより、WSRのリスニングを停止することができます。それはです。多くはです。
また、inproc SpeechRecognitionEngineを使用することもできます。
エンジンを作成し、適切な文法(読み上げ文法だけであっても)を読み込み、ファイルブラウザダイアログが開いている間はRecognize()を呼び出します。あなただけの、唯一の認識を行いたい場合は、whileループを残し、裸の認識呼び出すことができます
// This goes in your application initialization code
var engine = new SpeechRecognitionEngine();
// Set event handlers here...
// Load grammar here...
// This goes in your code where you open the dialog and want
// speech recognition
while (isFileDialogOpen) {
engine.Recognize(); // It's probably not called 'engine' in your code ;)
}
が、私はwouldn:
このような何か(spitballing、VSからコピーされません)部屋が完全に静かで、あなた自身に迷惑をかけない限り、それをお勧めしません。
これは私が使用したものである:
Process[] processes = Process.GetProcessesByName("sapisvr");
foreach (var process in processes)
{
process.Kill();
}