问题标签 [system.speech.recognition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
224 浏览

c# - System.Speech.Recognition - 为什么 AppendChoices 被弃用了?

我开始在 .NET 中使用 .NET 语音识别System.Speech.Recognition。我已经能够识别一些非常基本的短语,但是在事件处理程序中,我想获得某些信息,如比萨订购示例中所示。

我可以使用正则表达式解析来自 e.Result.Text 的值,但是披萨订购示例使用了一个非常方便的方法,称为AppendChoices. 这种方法的美妙之处在于,您本质上将可能的单词列表与键相关联,并且当调用事件处理程序时(在识别出一个短语之后),您可以通过查看来访问该值Semantics[<your key string here>]。然而,虽然语义仍然可用,但我不知道如何使用它,因为似乎 AppendChoices 已被弃用。

我唯一可以在事件处理程序中使用正则表达式来确定口头命令参数是什么吗?

0 投票
2 回答
2462 浏览

c# - Windows7 上的语音识别 C# WPF 应用程序的两个问题

我制作了一个应用程序,它使用 SpeechRecognizer 类来设置简单的语法并识别简单的单词。

当我在 Win7 上运行它时,我注意到两件事。

1)我第一次启动应用程序时,语音识别栏(thingy)出现,但我的应用程序的 UI 没有显示(它正在运行,正如我在任务管理器中看到的那样)。当我第二次启动应用程序时(在杀死第一个实例之后)它正常显示(Windows 语音识别工具栏已经运行)。

2)当我第二次说出我在我的应用程序中识别的单词之一时,它不会触发事件 - 相反 - 它会选择我的应用程序上的文本,我在列表框中打印出已识别单词的历史记录。

注意:当我从主屏幕中删除历史列表框时,它按预期工作。显然,Win7 会首先尝试在我的 UI 中找到这个词,而当它找不到它时 - 只有这样它才会触发我的编程事件......??

这两个问题对我来说似乎都很奇怪。

有关该应用程序的更多信息:它是一个用 C# 编写的 VS2008/.NET 3.0 WPF 应用程序。该应用程序允许用户编辑用于发送 Midi 命令的设置组(补丁)。每个补丁都标有一个短语。当该短语被说出(被应用程序识别)时,所有配置的 Midi 命令都将发送到输出。用户调用的补丁历史记录在应用程序主屏幕的“历史记录”列表中。

我希望有人可以帮助我。任何建议都非常受欢迎。

谢谢,马克·雅可比

0 投票
3 回答
10057 浏览

c# - 使用 System.Speech 将音频文件转换为文本

我正在寻找将通过 android 手机以 16000 录制的 .wav 文件转换为使用 C# 的文本;即 System.Speech 命名空间。我的代码在下面提到;

与示例 .wav “Hello world” 文件完美配合。但是,当我在手机上录制内容并尝试在电脑上转换时,转换后的文本与我录制的内容相差甚远。有什么方法可以确保音频文件被准确转录吗?

0 投票
1 回答
382 浏览

c# - 如何使用 GrammarBuilder 允许各种选择顺序

我正在开发一个简单的语音识别应用程序。我需要一些有关 GrammarBuilder 的帮助。这是我尝试过的:

此代码希望用户按顺序从choice1 然后choice2 然后choice3 说出一些内容,并且效果很好。但我希望代码先期待选择 1,然后选择选择 2,然后选择选择 2 和选择 3 的任意组合。我不确定如何实现这一点。

0 投票
2 回答
5938 浏览

c# - 将 System.Speech 与 Kinect 一起使用

我正在为一个大学项目开发​​一个原型语音到文本字幕应用程序。稍后我将在我的项目中使用手势识别,所以我认为使用 Kinect 作为麦克风源而不是使用额外的麦克风是个好主意。我的应用程序的想法是识别自发的语音,例如长而复杂的句子(但我知道语音听写不会是完美的)。我看过许多 Kinect 语音示例,其中引用了 Microsoft.Speech,但没有引用 System.Speech。由于我需要训练语音引擎并将 DictationGrammar 加载到语音识别引擎中,Microsoft.Speech 是我唯一的选择。

在将 Kinect 用作​​直接麦克风音频源时,我已经设法让它工作,但由于我正在加载 Kinect 以进行视频预览和手势识别,因此我无法将其作为直接麦克风访问。

这是直接访问麦克风的代码,无需加载用于手势等的 Kinect 硬件,并且运行良好:

这就是我需要在加载 Kinect 后通过 Kinect 访问访问源的地方,这根本没有做任何事情。这是我想做的:

所以问题是,是否可以在当前的 Kinect SDK 中使用 System.Speech 而不是 Microsoft.Speech,我在第二个代码示例中做错了什么?

GetKinectRecognizer 方法

0 投票
1 回答
285 浏览

system.speech.recognition - 如何使用 System.Speech 将确切的短语识别为命令

例如,假设我想要一个在屏幕中心单击鼠标的命令“中心”。简单的例子,但我对它的语法方面更感兴趣。

如果我只想匹配“中心”怎么办?

因此,如果我暂停,说“中心”,然后暂停它是匹配的。

但是,如果我说“我在房间的中央”,我就找不到匹配项。

以下代码似乎与“中心”一词相匹配,无论它是在短语的哪个部分说的:

0 投票
1 回答
910 浏览

c# - 如何在非英语 Win Vista Business 上使用 System.Speech

我想尝试语音识别来控制程序。我用 C# 编写了测试程序,当我调试它时,每次都会发生错误 -

看起来错误是由于engine.LoadGrammar(new DictationGrammar()); 我的笔记本上我安装了 CZECH OS Vista 引起的,这可能是语音识别语言与操作系统语言不同的问题。

有没有办法在非英语操作系统中使用 system.speech 进行开发,或者我在某些步骤中错了?语言没有问题,我想用英语进行语音识别,但是我无法获得英语 Vista 或 MUI 语言包。

完整代码如下。

非常感谢!

0 投票
3 回答
5073 浏览

c# - System.Speech.Recognition 是否使用“语音训练”?

我有一些System.Speech.Recognition工作正常的简单代码:

使用 Windows 7 时,我在"Control Panel" -> "Speech Recognition" -> "Train your computer to better understand you".

我的程序是否会自动利用已完成的任何培训?培训收益是基于用户还是基于机器?可以(轻松地)移动这些语音“配置文件”吗?

0 投票
0 回答
199 浏览

speech-recognition - 如何使用 System.speech 口述英语

奇怪的是我的程序只能识别中文。顺便说一句,我在中国。

即使我安装了visual c# 2010的英文版,它仍然只能识别中文。

如何更改语言设置?

然后我改变 var selectedRecognizer = (from e in SpeechRecognitionEngine.InstalledRecognizers() where e.Culture.Equals(Thread.CurrentThread.CurrentCulture) select e).FirstOrDefault();

到 e.Culture.Equals("en");

但它似乎是识别器的一个例外 = new SpeechRecognitionEngine(selectedRecognizer); 说检查以确定对象是否为空。

我使用麦克风作为控制面板中的默认音频输入设备。

我刚才在http://msdn.microsoft.com/en-us/library/ms554259.aspx中尝试过这个最简单的代码 。还会出现异常警告句子中没有此类文化标识符: SpeechRecognitionEngine Recognizer = new SpeechRecognitionEngine( new System.Globalization.CultureInfo("en-US")))

0 投票
1 回答
833 浏览

c# - System.Speech 降低麦克风灵敏度

我想知道如何在 C# 中使用 System.Speech 降低麦克风灵敏度。

为了解释我自己,我有一个语法文件,当我说 SIVRAJ(我的程序名称)时,我的应用程序应该开始记录我

但是,我可以说一些完全不同的东西,我的应用程序会理解一些“SIVRAJ”......

我的 XML 文件中有一部分:

这是启动识别引擎的功能:

最后,我在这里恢复数据: