问题标签 [speech]

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 投票
1 回答
5305 浏览

api - 语音中的关键字发现

有人知道免费提供的关键字识别系统,并且可能提供 API 吗?

CMU Sphinx 4 和 MS Speech API 是语音识别引擎,不能用于 KWS。

SRI有一个关键字发现系统,但没有下载链接,甚至没有用于评估。(我什至在任何地方都找不到与他们联系以获取他们的软件的链接)

我在这里找到了一个,但它是一个演示并且有限。

0 投票
2 回答
3626 浏览

android - Android:如何检测用户何时停止对着麦克风说话

我有一个 Android 应用程序,它在应用程序启动时开始从麦克风录制。在我当前的版本中,用户必须按下停止按钮才能停止录制。

如何检测到用户已经停止说话并使用它来触发录音机停止?

类似于在 Android 中的语音识别功能中实现的功能。用户停止说话,然后翻译语音。我见过其他应用程序可以做到这一点,比如会说话的汤姆类型的应用程序。

作为旁注,我还想展示某种类型的视觉效果,表明麦克风正在接收声音。显示传入的声级的东西。

任何帮助表示赞赏。

0 投票
1 回答
2732 浏览

c# - 为什么 Microsoft 语音识别 SemanticValue.Confidence 值始终为 1?

我正在尝试将 SpeechRecognizer 与自定义语法一起使用来处理以下模式:

“你能打开{item}吗?” 其中 {item} 使用 DictationGrammar。

我正在使用内置于 Vista 和 .NET 4.0 中的语音引擎。

我希望能够获得返回的 SemanticValues 的置信度。请参见下面的示例。


如果我简单地使用“recognizer.AddGrammar(new DictationGrammar())”,我可以浏览 e.Results.Alternates 并查看每个备用的置信度值。如果 DictationGrammar 位于顶层,这将起作用。

编造的例子:

  • 你能打开火狐吗?.95
  • 你能打开费尔法克斯吗?.93
  • 可以打开文件传真吗?.72
  • 你会写火狐吗?.85
  • 你能固定费尔法克斯吗?.63

但是,如果我构建一个语法来寻找“你能打开 {semanticValue Key='item' GrammarBuilder=new DictationGrammar()}?”,那么我会得到这个:

  • 你能打开火狐吗?.91 - 语义 = {GrammarBuilder.Name = "你能打开吗"}
  • 你能打开费尔法克斯吗?.91 - 语义 = {GrammarBuilder.Name = "你能打开吗"}
  • 可以打开文件传真吗?.91 - 语义 = {GrammarBuilder.Name = "你能打开吗"}
  • 你会写火狐吗?.85 - 语义=空
  • 你能固定费尔法克斯吗?.63 - 语义=空

.91 向我展示了它与“你能打开 {item} 吗?”的模式相匹配的自信程度。但没有进一步区分。

但是,如果我随后查看 e.Result.Alternates.Semantics.Where( s => s.Key == "item" ),并查看他们的 Confidence,我会得到:

  • 火狐1.0
  • 费尔法克斯 1.0
  • 文件传真 1.0

这对我没有多大帮助。

当我查看匹配语义值的置信度时,我真正想要的是这样的:

  • 火狐 .95
  • 费尔法克斯 .93
  • 文件传真 .85

似乎它应该这样工作......

难道我做错了什么?有没有办法在语音框架内做到这一点?


我希望有一些内置的机制,以便我可以以“正确”的方式做到这一点。

至于另一种可能可行的方法......

  1. 使用 SemanticValue 方法匹配模式
  2. 对于与该模式匹配的任何内容,提取 {item} 的原始音频(使用 RecognitionResult.Words 和 RecognitionResult.GetAudioForWordRange)
  3. 通过具有 DictationGrammar 的 SpeechRecognizer 运行 {item} 的原始音频以获得置信度

...但这比我真正想做的要多。

0 投票
2 回答
72344 浏览

c# - 好的语音识别API

我正在从事一个使用语音识别的大学项目。目前我正在 Windows 7 上开发它,我正在使用随 .net 一起提供的 system.speech API 包,我正在 C# 上进行。

我面临的问题是听写识别不够准确。然后,每当我启动我的应用程序时,桌面语音识别就会自动启动。这对我来说是一个很大的麻烦。由于我说的话已经不够清楚,并且相互冲突的识别被解释为命令和动作,如应用程序切换最小化正在执行。

这是我的应用程序的一个关键部分,我恳请您为我推荐任何好的语音 API,而不是这个微软的错误。即使它可以理解简单的听写语法也很好。

0 投票
3 回答
12289 浏览

html - 在 HTML/JavaScript 扩展中使用 x-webkit-speech

我正在尝试在Google Chromex-webkit-speech的简单 HTML/JavaScript 扩展中使用新功能。但是,我已经尝试并尝试查看一堆示例,但无法让它成功调用该函数。我见过其他人这样做,我真的不明白为什么我不能。我将 JavaScript 代码放入一个单独的文件中,但我使用 <script src="filename.js"> 这是我的 x-webkit-speech 行...。

现在,如果我更改onChange()alert(this.value),它会执行一个警报框,其中包含语音输入的值。所以我真的不明白为什么我不能只调用另一个函数。我不是最伟大的 JavaScript 或 HTML 程序员,但我对此进行了大量研究。每个人对事物的定义都不一样,而且由于没有可靠的 API,因此很难真正知道谁的形式正确,因为它们似乎都以某种方式工作。

我的onChange功能看起来像

我只是想测试并确保它能够发挥作用,但我什么也没得到。

0 投票
1 回答
2287 浏览

c# - 省略“可选”项时如何从 System.Speech.Recognition 返回默认语义?

我是一名中级 C# 程序员,但绝对是 System.Speech 的初学者。我正在通过一些示例来了解 API 的工作原理,并且我已经挂断了第一个示例......我想要做的是有一个语法,它返回一个或多个预期选择的默认语义如果用户没有明确地为这些选择之一提供值。(对不起,如果我的术语不太正确......)我在 Windows Vista 上安装了 Visual Studio 2010(试用版)和 .NET 4.0。

我从以下文章中的“披萨订购”示例开始,这似乎在论坛上出现了很多:

http://msdn.microsoft.com/en-us/magazine/cc163663.aspx#S5

我开始使用的代码在该文章的图 9 中。不幸的是,由于某种原因(可能从 SAPI 的一个版本更改为下一个版本?),许多函数调用在 .NET 4.0/SAPI 5.3 中实际上是无效的,例如 GrammarBuilder.AppendChoices() 和 GrammarBuilder.AppendResultKeyValue() . 如果用户只指定浇头(即“A cheese Pizza, please” 递回 size=large、crust=thick 和 topping=奶酪)...所以我想弄清楚如何使这项工作。

这是我的代码的相关部分(应该只是对上面文章中代码的重写):

我知道SemanticResultKey 构造函数的 MSDN 页面包含一个警告,即“在由builders参数指定的 GrammarBuilder 对象中应该有一个且只有一个未标记的 SemanticResultValue 实例”,否则您将收到异常。事实上,当我在识别器中说“A cheese Pizza”之类的内容时,我确实在这里得到了 TargetInvocationException。

所以我的第一个问题是,有人可以向我解释这里发生了什么吗?我不一定期望此约束适用于此,因为 (a) 我认为我对 skeyDefaultSize 和 skeyDefaultCrust 的声明确实将 SemanticResultValues 与 SemanticResultKeys 相关联,因此不应将这些值视为“未标记”;(b) 有问题的两个 SemanticResultValues 实际上来自不同的 GrammarBuilders,它们又位于不同的 SemanticResultKeys 内部,这似乎不是 MSDN 页面上描述的场景。

那么我的第二个问题是,为什么下面的代码有效?唯一的区别是我重新排序了一些行,以便两个“默认”键不会连续附加到语法中。

当我说“A cheese Pizza”时,这给出了确切的期望结果——所有键(“size”、“crust”、“topping”)都存在于我在 SpeechRecognized 处理程序中捕获的 SemanticValue 中,具有所需的默认值大小和外壳的值加上用户指定的浇头值。

我想第三个也是最重要的问题是:有什么方法可以正确地做到这一点吗?显然,调整追加的顺序太“神奇”,并不总是可行的解决方案。

很抱歉这个大问题,非常感谢您的帮助!

0 投票
8 回答
26326 浏览

speech-recognition - 语音检测和辨别的开源代码

我有 15 盘录音带,我相信其中的一盘是我祖母和我谈话的旧录音。快速尝试找到合适的地方并没有成功。我不想听 20 个小时的磁带才能找到它。该位置可能不在其中一个磁带的开头。大多数内容似乎分为三类——按总长度、最长的顺序排列:静音、语音广播和音乐。

我打算把所有的磁带都转换成数字格式,然后再找录音。显而易见的方法是在我做其他事情时在后台播放它们。这对我来说太简单了,所以:是否有任何开源库或其他代码可以让我找到,以增加复杂性和实用性:

  1. 非静音区域
  2. 包含人类语音的区域
  3. 包含我自己的演讲(和我祖母的演讲)的区域

我的偏好是 Python、Java 或 C。

失败的答案,关于搜索词的提示将不胜感激,因为我对该领域一无所知。

我知道我可以轻松地在这上面花费 20 多个小时。

0 投票
3 回答
3779 浏览

google-chrome - attr "x-webkit-speech" 的输入可以是英语以外的语言吗?

目前,Chrome x-webkit-speech 似乎只适用于英语,是否可以与其他语言一起使用?

0 投票
4 回答
39716 浏览

java - Android 上的语音转文本

我正在寻找创建一个具有语音到文本的应用程序。

我知道使用 RecognizerIntent 的这种能力:http ://android-developers.blogspot.com/search/label/Speech%20Input

但是 - 我不希望弹出一个新的 Intent,我想在我当前的应用程序中对某些点进行分析,并且我不希望它弹出一些东西,说明它当前正在尝试记录你的声音。

有没有人对如何最好地做到这一点有任何想法。我可能正在考虑尝试 Sphinx 4 - 但我不知道这是否能够在 Android 上运行 - 有没有人有任何建议或经验?!

我想知道我是否可以将此处的代码更改为可能不打扰显示 UI 或按钮而只进行处理:http: //developer.android.com/resources/samples/ApiDemos/src/com/example/android/ apis/app/VoiceRecognition.html

干杯,