我需要使用语音识别文件浏览,使用命令“显示数字”。当我打开文件夹浏览器对话框时,我希望语音识别器启动;当浏览器对话框窗口关闭时,我希望语音识别器关闭。如何在代码隐藏中使用完全关闭语音识别器?
编辑:我为我的问题找到了“丑陋”的解决方案:杀死sapisvr.exe
发布于 2012-03-04 20:36:49
你为什么要完全关闭WSR?启动和关闭需要相当长的时间。可以让CoCreateing停止侦听共享识别器实例(CLSID_SpSharedRecognizer),然后将识别器状态设置为SPRST_INACTIVE。快多了。
发布于 2012-03-27 21:42:36
另一个选项是使用inproc SpeechRecognitionEngine。
创建引擎并加载适当的语法(即使它只是听写语法),然后只要打开文件浏览器对话框就调用Recognize()。
类似这样的东西(诽谤,而不是从VS复制):
// 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 ;)
}如果你只想做一次也只有一次的识别,你可以省略while循环,然后调用Recognize,但是我不会推荐它,除非房间是完全安静的,而且你不会自言自语。
发布于 2017-01-09 09:31:33
这就是我所用的:
Process[] processes = Process.GetProcessesByName("sapisvr");
foreach (var process in processes)
{
process.Kill();
}https://stackoverflow.com/questions/9343565
复制相似问题