- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是使用 Microsoft.Speech 识别器(使用 Microsoft Speech Platform SDK 版本 11)的新手,我试图让它从一个简单的语法输出 n 最佳识别匹配,以及每个的置信度分数。
根据文档(如提到的 in the answer to this question ),应该可以使用 e.Result.Alternates
访问除得分最高的单词以外的已识别单词。然而,即使将置信度拒绝阈值重置为 0(这应该意味着什么都不会被拒绝),我仍然只得到一个结果,并且没有替代结果(尽管 SpeechHypothesized
事件表明至少其他单词中的一个似乎是在某些时候以非零置信度识别)。
我的问题:任何人都可以向我解释为什么我只得到一个识别词,即使置信度拒绝阈值设置为零?如何获得其他可能的匹配项及其置信度分数?我在这里想念什么?
下面是我的代码。提前感谢任何可以提供帮助的人:)
在下面的示例中,识别器被发送一个单词“news”的 wav 文件,并且必须从相似的单词(“noose”、“newts”)中进行选择。我想提取每个单词的识别器置信度得分列表(它们都应该不为零),即使它只会返回最好的一个(“新闻”)作为结果。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Speech.Recognition;
namespace SimpleRecognizer
{
class Program
{
static readonly string[] settings = new string[] {
"CFGConfidenceRejectionThreshold",
"HighConfidenceThreshold",
"NormalConfidenceThreshold",
"LowConfidenceThreshold"};
static void Main(string[] args)
{
// Create a new SpeechRecognitionEngine instance.
SpeechRecognitionEngine sre = new SpeechRecognitionEngine(); //en-US SRE
// Configure the input to the recognizer.
sre.SetInputToWaveFile(@"C:\Users\Anjana\Documents\news.wav");
// Display Recognizer Settings (Confidence Thresholds)
ListSettings(sre);
// Set Confidence Threshold to Zero (nothing should be rejected)
sre.UpdateRecognizerSetting("CFGConfidenceRejectionThreshold", 0);
sre.UpdateRecognizerSetting("HighConfidenceThreshold", 0);
sre.UpdateRecognizerSetting("NormalConfidenceThreshold", 0);
sre.UpdateRecognizerSetting("LowConfidenceThreshold", 0);
// Display New Recognizer Settings
ListSettings(sre);
// Build a simple Grammar with three choices
Choices topics = new Choices();
topics.Add(new string[] { "news", "newts", "noose" });
GrammarBuilder gb = new GrammarBuilder();
gb.Append(topics);
Grammar g = new Grammar(gb);
g.Name = "g";
// Load the Grammar
sre.LoadGrammar(g);
// Register handlers for Grammar's SpeechRecognized Events
g.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(gram_SpeechRecognized);
// Register a handler for the recognizer's SpeechRecognized event.
sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);
// Register Handler for SpeechHypothesized
sre.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(sre_SpeechHypothesized);
// Start recognition.
sre.Recognize();
Console.ReadKey(); //wait to close
}
static void gram_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("\nNumber of Alternates from Grammar {1}: {0}", e.Result.Alternates.Count.ToString(), e.Result.Grammar.Name);
foreach (RecognizedPhrase phrase in e.Result.Alternates)
{
Console.WriteLine(phrase.Text + ", " + phrase.Confidence);
}
}
static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
Console.WriteLine("\nSpeech recognized: " + e.Result.Text + ", " + e.Result.Confidence);
Console.WriteLine("Number of Alternates from Recognizer: {0}", e.Result.Alternates.Count.ToString());
foreach (RecognizedPhrase phrase in e.Result.Alternates)
{
Console.WriteLine(phrase.Text + ", " + phrase.Confidence);
}
}
static void sre_SpeechHypothesized(object sender, SpeechHypothesizedEventArgs e)
{
Console.WriteLine("Speech from grammar {0} hypothesized: {1}, {2}", e.Result.Grammar.Name, e.Result.Text, e.Result.Confidence);
}
private static void ListSettings(SpeechRecognitionEngine recognizer)
{
foreach (string setting in settings)
{
try
{
object value = recognizer.QueryRecognizerSetting(setting);
Console.WriteLine(" {0,-30} = {1}", setting, value);
}
catch
{
Console.WriteLine(" {0,-30} is not supported by this recognizer.",
setting);
}
}
Console.WriteLine();
}
}
}
Original recognizer settings:
CFGConfidenceRejectionThreshold = 20
HighConfidenceThreshold = 80
NormalConfidenceThreshold = 50
LowConfidenceThreshold = 20
Updated recognizer settings:
CFGConfidenceRejectionThreshold = 0
HighConfidenceThreshold = 0
NormalConfidenceThreshold = 0
LowConfidenceThreshold = 0
Speech from grammar g hypothesized: noose, 0.2214646
Speech from grammar g hypothesized: news, 0.640804
Number of Alternates from Grammar g: 1
news, 0.9208503
Speech recognized: news, 0.9208503
Number of Alternates from Recognizer: 1
news, 0.9208503
最佳答案
我相信这是 SAPI 允许您询问 SR 引擎并不真正支持的东西的另一个地方。
Microsoft.Speech.Recognition 和 System.Speech.Recognition 都使用底层 SAPI 接口(interface)来完成它们的工作;唯一的区别是使用的是哪个 SR 引擎。 (Microsoft.Speech.Recognition 使用服务器引擎;System.Speech.Recognition 使用桌面引擎。)
替代主要是为听写设计的,而不是上下文无关的语法。您始终可以为 CFG 获得一个替代项,但替代生成代码看起来不会扩展 CFG 的替代项。
不幸的是,Microsoft.Speech.Recognition 引擎不支持听写。 (但是,它确实可以处理质量低得多的音频,并且不需要培训。)
关于.net - 微软语音识别 : Alternate results with confidence score?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18965286/
刚刚买了一辆装有 Microsoft 同步系统的汽车。在网上进行了快速搜索,很好奇是否有人知道可能存在的任何 SDK、示例开源附加应用程序等。 提前致谢。 最佳答案 更新: 看起来像Ford has
我使用VS2010,目标为.Net 2.0(VB.Net Windows Form应用程序) How to decide what is the .Net target我决定使用 2.0,因为我知道如
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Reading/Writing MS Word files in Python 我正在研究需求管理系统(如
Visual Studio 的价格非常昂贵。这就是为什么我想知道我可以使用什么来免费开发 ASP.NET 和 Silverlight 应用程序。如果我使用express工具,我可以开发商业应用吗?使用
是否可以设置特定单词或短语的语气或重点? 例如:Good Morning会用轻松的语气,而 The nuclear plant is about to melt down会更加紧迫。 我知道我可以改变
我注意到这个问题重复了几次,但是,从所有资源来看,我仍然无法使其正常工作。 我只是尝试在我的 Django 应用程序中使用 Azure Active Directory 身份验证。我正在使用this模
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我在使用 UseJwtBearerAuthentication 方法时遇到困难,我正在使用 Microsoft Azure ACS 获取 token (使用服务标识)。 JWT token 很好地返回
所以我找到了list今天 MSDN 上有很多转换器,现在我想使用其中的一些。然而,经过一番搜索后,我似乎找不到任何关于它们的信息。 我主要想用IntToBoolConverter 。但是我不知道如何使
我在使用 UseJwtBearerAuthentication 方法时遇到困难,我正在使用 Microsoft Azure ACS 获取 token (使用服务标识)。 JWT token 很好地返回
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
有没有办法摆脱子表单中的左侧栏和底栏? 我指的是这张图片中的酒吧。 我有被引用为连续形式的形式,如果这很重要。我想做的是让它看起来有点像这个用户所做的 Trying to Make an Effici
例如,我有一个任务表: TaskTitle DueDate Person Manager Report 3/28/15 John Dave Inspection 4/10/15 Bri
我得到的错误在这里: #if defined( _WIN32 ) #ifndef WIN32 #error error // error calls here #end
我想知道 MS Jscript(不是 Jscript .net)是否有类似于 python 中的电子邮件模块? 最佳答案 您可以使用Collaboration Data Objects (CDO) C
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
为什么我收到以下代码的以下警告:) 代码: _stprintf(m_szFileNamePath,_T("%s"),strFileName); warning C4996: '_swprintf':
我一直在阅读他们现在已经放弃了他们的 HPC 项目并转向 Hadoop。他们将提供自己的 hadoop 安装包,可能会更无缝地与 .NET 集成。 我在哪里可以获得有关此计划的文档?架构以及如何开始在
文件表: Company Document Status Notes: A 1 Submission Submitte
我不太了解 VB。我能弄清楚大部分事情。想知道有没有人能告诉我这行代码是什么意思 Option Compare Database 最佳答案 意思是“在这个模块中,使用数据库中定义的规则比较字符串。”
我是一名优秀的程序员,十分优秀!