Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.Speech.Recognition替代匹配和置信值_C#_.net_Speech Recognition - Fatal编程技术网

C# System.Speech.Recognition替代匹配和置信值

C# System.Speech.Recognition替代匹配和置信值,c#,.net,speech-recognition,C#,.net,Speech Recognition,我正在使用System.Speech.Recognition名称空间来识别一个口语句子。我对识别器提供的备选句子以及它们的信心分数感兴趣。从[RecognitionResult.Alternates][1]属性的文档中: 识别候补者按其置信值排序 财产。给定短语的置信值表示 短语与输入匹配的概率。带有 最高置信值是最有可能与 输入 应单独评估每个置信值,且无需 参考其他替代品的置信值 然而,当我以其置信度打印已识别文本,并且备选文本与它们的置信度匹配时,我面临两个我无法理解的属性:第一,备选文本

我正在使用
System.Speech.Recognition
名称空间来识别一个口语句子。我对识别器提供的备选句子以及它们的信心分数感兴趣。从
[RecognitionResult.Alternates][1]
属性的文档中:

识别候补者按其置信值排序 财产。给定短语的置信值表示 短语与输入匹配的概率。带有 最高置信值是最有可能与 输入


应单独评估每个置信值,且无需 参考其他替代品的置信值

然而,当我以其置信度打印已识别文本,并且备选文本与它们的置信度匹配时,我面临两个我无法理解的属性:第一,备选文本不是根据置信度排序的(尽管第一个与已识别文本匹配),第二,这对我来说是一个更大的问题,公认的文本不是得分最高的备选文本,这似乎与我上面引用的文档相矛盾

speechrecogned
事件处理程序中的My(不完整)代码示例:

Console.WriteLine("Recognized text =  {0}, score = {1}", e.Result.Text, e.Result.Confidence); 
// Display the recognition alternates for the result.
foreach (RecognizedPhrase phrase in e.Result.Alternates)
{
    Console.WriteLine(" alt({0}) {1}", phrase.Confidence, phrase.Text);
}
以及相应的输出:

Recognized text =  She had said that fit and Gracie Wachtel are all year, score = 0.287724
alt(0.287724) She had said that fit and Gracie Wachtel are all year
alt(0.287724) she had said that fit and gracie wachtel are all year
alt(0.2955212) she had said that faith and gracie wachtel are all year
alt(0.287133) she had said that fit and gracie Wachtell are all year
alt(0.1644379) she had said that fit and gracie wachtel earlier
alt(0.3254312) jihad said that fit and gracie wachtel are all year
alt(0.2726361) she had said that fit and gracie wachtel are only are
alt(0.2867217) she had said that fail and gracie wachtel are all year
alt(0.2565451) she had said that fit and gracie watchful are all year
alt(0.2854537) she had said that fate and gracie wachtel are all year
编辑要澄清信心分数的含义,并说明我的结果与文档矛盾的原因,请参阅
RecognizedPhrase.confidence属性
文档中的以下信息。粗体部分是我添加的:

信心分数并不表示 该短语被正确识别。相反,信心分数提供了 比较多重识别相对准确度的机制 为给定的输入进行替换。这有助于最大限度地返回 识别结果准确。例如,如果一个已识别的短语具有 置信度得分为0.8,这并不意味着该短语的得分为80% 成为输入的正确匹配项的可能性。这意味着 短语更有可能是输入的正确匹配项 置信度得分低于0.8的结果

信心分数本身是没有意义的,除非你有信心 可供比较的替代结果,来自相同 识别操作或来自相同输入的先前识别。 这些值用于对用户返回的备选候选短语进行排序 识别结果对象上的Alternates属性

置信值相对于每个识别引擎而言是唯一的。 两个不同的识别引擎返回的置信度值不能 进行有意义的比较

语音识别引擎可以将低置信度分数分配给 由于各种原因的语音输入,包括背景干扰, 口齿不清的讲话,或意料之外的单词或单词序列。如果你的 应用程序正在使用SpeechRecognitionEngine实例,您可以 修改接受语音输入的置信度,或 已被其中一个UpdateRecogniterSetting方法拒绝。信心 由SpeechRecognizer管理的共享识别器的阈值为 与用户配置文件关联并存储在Windows注册表中。 应用程序不应将更改写入 共享识别器的属性

RecognitionResult对象的Alternates属性包含 可识别短语对象的有序集合,每个对象都是 识别器输入的可能匹配项候补者是 从最高置信度到最低置信度排序


我只能给你一个一般性的答案(我不知道微软语音识别的代码) 识别使用许多算法来接近最佳解决方案。在一个完美的世界中,每种算法都应该能够加权转换句子的置信度得分。事实上,情况几乎从未如此:

每一种算法都有缺陷,在转换过程中对置信度产生准确的影响可能是一个真正令人头痛的问题

整体句子置信度是句子各部分的算术组合。通常比内部信心模式简单得多

使用的一些算法,如专有名词识别,不一定会明显改变置信度(特别是在单个孤立句子中)

置信度是在多个层面(语音、单词、句子结构……)进行测量的。如果句子结构不一致,那么完美的语音识别的置信度是多少

将更好的识别移到列表顶部的排序算法通常不会改变置信度,而只会改变排序/排除选项

因此,文件是正确的,机密性无法在备选方案之间进行比较


信心的潜在用途是什么(除了作者想告诉我们的事实:我们可以让您轻松使用非常复杂和近似的技术)。几乎没有。您可能可以消除太低的置信水平(低于某个阈值),除非置信度达到该阈值。

这里的置信度属性是内部模型的“”输出值(通常语言建模是由“人工智能数学模型”组成的,如或)


但是语音识别SDK会根据模型输出和验证其他附加参数的不同置信度向您提供一个列表。对于这个SDK,它在语法上遵守了一个格式良好的规则。

是的,我知道信心背后的含义,但它没有解释为什么认可的输出不是具有最高信心的输出。这不是我从文档中理解的。我的理解是,给定两个句子A和B,你不能比较conf