Speech recognition 为什么我的Microsoft语音识别结果的置信度始终等于-1?
我正在使用MicrosoftSpeechSDK实现一个使用语音识别的软件 我给识别引擎提供了一个非常正常的语法,但是当启动引擎并说出正确的话时,它会识别我说的话,但是返回的结果对象的置信值为-1 此外,结果中包含的所有语义值对象也具有-1置信度 我在相关的MSDN页面中找不到这样一个结果的含义,事实上,它只是写了典型的置信值应该在0和1之间 a-1值是什么意思?这和语法有关吗 编辑:其他信息:Speech recognition 为什么我的Microsoft语音识别结果的置信度始终等于-1?,speech-recognition,Speech Recognition,我正在使用MicrosoftSpeechSDK实现一个使用语音识别的软件 我给识别引擎提供了一个非常正常的语法,但是当启动引擎并说出正确的话时,它会识别我说的话,但是返回的结果对象的置信值为-1 此外,结果中包含的所有语义值对象也具有-1置信度 我在相关的MSDN页面中找不到这样一个结果的含义,事实上,它只是写了典型的置信值应该在0和1之间 a-1值是什么意思?这和语法有关吗 编辑:其他信息: 我正在使用System.Speech类与语音识别引擎进行交互 识别引擎是Microsoft英语识别器
- 我正在使用System.Speech类与语音识别引擎进行交互李>
- 识别引擎是Microsoft英语识别器v5.1李>
- 我在XP上运行这个程序,因此SpeechSDK也是5.1
- 输入是一个麦克风输入:我没有找到任何可能为这个识别引擎提供文件的线索,尽管这会对我有很大帮助
- 在较新的机器上测试相同的代码,可能是Vista或Windows 7,看看条件级别是否正常工作。Vista和更高版本包括识别器引擎
- 尝试安装较新版本的识别器。您可以安装UCMA或。请注意,它们使用名称空间Microsoft.Speech,而不是System.Speech。看
SpeechRecognitionEngine myRecognizer = new SpeechRecognitionEngine();
Grammar myGrammar = CreatePizzaGrammar(); // uses GrammarBuilder to create a pizza ordering grammar
myRecognizer.LoadGrammar(myGrammar);
myRecognizer.SetInputToWaveFile("LargeCheese.wav"); // recording of ordering a pizza
RecognitionResult result = myRecognizer.Recognize();
string s = result.Text;
float confidence = result.Confidence;
你可能想澄清一些事情。您使用的是SAPI、System.Speech还是Microsoft.Speech?您运行的操作系统版本是什么?您运行的识别器版本是什么?您使用的是共享识别器还是inproc识别器?你的语法是如何产生的?您使用的是麦克风输入还是wav文件?我不知道问题是什么,但是更多的信息可能会帮助你得到一些答案。谢谢你的评论和回答。但是,我没有使用SAPI。我正在使用System.Speech。我更新了答案以提供您要求的详细信息。要使用wav文件输入运行识别器,请使用SpeechRecognitionEngine.SetInputToWaveFile()-哦,天哪,你是我的天才。。我找了这么久了!!我的问题没有解决,但是你给我看
SetInputToWaveFile()
对我来说同样值得。然而,如果你有办法用我目前的系统解决这个问题。语音课,我会很高兴收到你的来信!请尝试较新版本的识别器。我打赌你的代码会正常工作,你只是看到一个旧识别器的SAPI工件。这是我的猜测。