以下是我的语音识别代码。我注意到它并不擅长拿起句子。有什么我可以做的来解决这个问题吗?
public String listenForVoice() {
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US"));
Grammar dictationGrammar = new DictationGrammar();
recognizer.LoadGrammar(dictationGrammar);
try
{
recognizer.SetInputToDefaultAudioDevice();
RecognitionResult result = recognizer.Recognize();
return result.Text;
} catch (InvalidOperationException exception) { }
finally {
recognizer.UnloadAllGrammars();
}
return "";
}
答案 0 :(得分:0)
<强>首先:强> 要提高语音识别引擎的准确性,请尝试创建和加载与您要使用的单词/语法/语音类似的语法。这样我们就可以提高准确性。
<强>第二强> 评估假设的触发器1,触发器2,然后识别置信水平和结果。这是不实际的,因为每个人/用户都会有所不同。
无法阻止.NET语音识别引擎始终返回语法匹配。你也可以说&#34; bob&#34;在一个安静的房间里,它变成了一个工作室级的麦克风,它会识别出打开的Windows媒体播放器&#34;。洛尔
警告1:语法单词列表超过1,000个缓慢的事情并且可以锁定应用程序。
警告2:en-US具有良好的英语识别能力,切换到en-GB等会大大降低准确性
到目前为止,使用谷歌语音识别API (确实需要您在线),但它准确度提高了10倍,您可以自己轻松测试匹配。