我正在运行使用语音识别的示例,但它无法在Windows 8或2012服务器上运行。
使用win8或win2012server时,以下代码不会返回记录,但会在win7中返回。
foreach(RecognizerInfo rec in System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers())
{
Console.WriteLine(rec.Culture);
}
如果我使用win8或win2012服务器使用LoadGrammar,则会引发异常:
_recognizer.LoadGrammar (new Grammar (new GrammarBuilder (new Choices (_numbersGrammar.Keys.ToArray ()))) { Name = "Numbers_Grammar" });
'System.PlatformNotSupportedException'表示未安装识别器。
堆栈跟踪:
System.Speech.Recognition.RecognizerBase.Initialize(SapiRecognizer 识别器,布尔inproc)em System.Speech.Recognition.SpeechRecognitionEngine.get_RecoBase()em System.Speech.Recognition.SpeechRecognitionEngine.LoadGrammar(语法 语法)em SpeechRecognition.CaptchaSpeechManager..ctor(Int32 lettersCount,Int32 waitMilliseconds)in .... CS:行 289 em SpeechRecognition.Program.Main(String [] args)na e:\ TestCenter \ SpeechRecognition \ SpeechRecognition \ Program.cs:linha 24 em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String [] args)in Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback回调,对象状态,布尔值 preserveSyncCtx)em System.Threading.ExecutionContext.Run(执行上下文 executionContext,ContextCallback回调,对象状态,布尔值 preserveSyncCtx)em System.Threading.ExecutionContext.Run(执行上下文 executionContext,ContextCallback回调,对象状态)em System.Threading.ThreadHelper.ThreadStart()
我需要安装什么?我试图安装Speech SDK 11,但它会关闭直到completition oO
有人知道与此操作系统有任何不兼容性吗?
有人知道另一个lib这样做吗?
谢谢!
答案 0 :(得分:1)
您正在使用用于Speech SDK 5.3 / 5.4的System.Speech
命名空间,而您应该使用Microsoft.Speech
这是一个Speech SDK 11,您可以在
" C:\ Program Files \ Microsoft SDKs \ Speech \ v11.0 \ Assembly \ Microsoft.Speech.dll"
如果将其安装到默认路径。