摘要:最近在写关于C#语音识别来控制电灯,但是识别真的是太差了。不过不管识别效果怎么样,我还是要弄一弄,识别效果差,你是SDK要改进的问题,不是我们现在能解决的。我只管解决我的手头问题,解决如下:
错误提示1:
Could not load file or assembly 'Interop.SpeechLib, Version=5.4.0.0, Culture=neutral,
PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program
with an incorrect format.
这是因为在Visual Studio的编译选项 build下的platform有X64、Any CPU和x86。
X86表示只能在32位环境下运行,
X64表示只能在64位环境下运行,
Any CPU表示你的程序集可以根据环境变化适应32位还是64位,
但是如果你的程序集依赖于一个x86选项编译的程序集,哪么你的程序集只能选择X86进行编译,而不能选择Any CPU编译,如果使用Any CPU编译,运行就会出现如上的错误。
解决办法将框架降低到适应环境:检查VS专案,菜单栏中-----项目----(专案名)属性---应用程序----目标框架将这里的.netframework 4改成.netframework 2.0就好了!
再运行下看看就可以解决了。
********************************************************************
private static SpRecognition _Instance = null;
private SpeechLib.ISpeechRecoGrammar isrg;
private SpeechLib.SpSharedRecoContextClass ssrContex = null;
以上程序在.net framework 4.0里面运行就会有以下错误
错误:无法嵌入互操作类型“SpeechLib.SpSharedRecoContextClass”。请改用适用的接口。
解决办法:在visual studio 2010专案中, 试试在solution explorer(解决方案资源管理器)右击SpeechLib,点属性,Embed Interop Types(嵌入互操作类型)一项改成 false
再运行试试就应该就解决了。