gpt4 book ai didi

c# - MS System.Speech.Recognizer 和 SpeechRecognitionEngine 的准确性

转载 作者:太空狗 更新时间:2023-10-29 21:04:57 26 4
gpt4 key购买 nike

我目前正在通过从 xml 文件加载一个非常简单的规则来测试 SpeechRecognitionEngine。事实上,它是介于(“解密电子邮件”、“删除加密”)或(“加密电子邮件”、“添加加密”)之间的简单操作。

我已经训练了我的 Windows 7 PC,并额外添加了加密和解密这两个词,因为我意识到它们非常相似。识别器在区分这两者方面已经存在问题。

我遇到的问题是它过于频繁地识别事物。我将置信度设置为 0.93,因为在安静的房间里,当我说出确切的词时,有时我的声音只能达到 0.93。但是,如果我打开 radio ,播音员的声音或歌曲可能意味着此识别器认为它以超过 0.93 的置信度听到了“解密电子邮件”一词。

也许 Lady Gaga 正在隐藏 Applause 以 secret 解密电子邮件:-)

任何人都可以帮助解决如何使该识别器可行的问题。

事实上,识别器还将键盘噪音识别为“解密电子邮件”。我不明白这怎么可能。

对于我的编辑伙伴,至少有两个用于 MS Speech Microsoft.Speech 和 System.Speech 的托管命名空间 - 对于这个问题,知道它是 System.Speech 很重要。

最佳答案

如果 System.Speech 识别器正在监听的唯一是“加密电子邮件”,那么识别器将生成很多误报。 (特别是在嘈杂的环境中。)如果您并行添加一个 DictationGrammar(特别是发音语法),DictationGrammar 将拾取噪音,您可以在事件处理程序中检查(例如)语法名称以丢弃伪造的认可。

一个(子集)示例:

    static void Main(string[] args)
{
Choices gb = new Choices();
gb.Add("encrypt the document");
gb.Add("decrypt the document");
Grammar commands = new Grammar(gb);
commands.Name = "commands";
DictationGrammar dg = new DictationGrammar("grammar:dictation#pronunciation");
dg.Name = "Random";
using (SpeechRecognitionEngine recoEngine = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
recoEngine.SetInputToDefaultAudioDevice();
recoEngine.LoadGrammar(commands);
recoEngine.LoadGrammar(dg);
recoEngine.RecognizeCompleted += recoEngine_RecognizeCompleted;
recoEngine.RecognizeAsync();

System.Console.ReadKey(true);
recoEngine.RecognizeAsyncStop();
}
}

static void recoEngine_RecognizeCompleted(object sender, RecognizeCompletedEventArgs e)
{
if (e.Result.Grammar.Name != "Random")
{
System.Console.WriteLine(e.Result.Text);
}
}

关于c# - MS System.Speech.Recognizer 和 SpeechRecognitionEngine 的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18821566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com