8

我通读了有关此的W3C 文档,我认为自定义单词来自自定义语法,但我尝试查看此演示并在控制台中输入以下 javascript:

recognition.grammars.addFromString('foo');

运行良好并recognition.grammars[0].src返回:"data:application/xml,foo"

注意:'foo' 不是我感兴趣的单词,但我感兴趣的单词不是英文单词,以 'foo' 为例。当我正常说出我的自定义词时,它认为我在说别的东西(这是有道理的)。我在这里使用 'foo' 来保护我的品牌 :)

所以我想要的是能够说“嘿,foo”,类似于“Ok,Google”的工作方式。但是我的“foo”词不是一个实际的词,所以SpeechRecognitionResult没有我的自定义词。

我是否误解了如何添加自定义词,或者今天不可能?

4

1 回答 1

5

当我正常说出我的自定义词时,它认为我在说别的东西(这是有道理的)。

Google 在不支持语法的情况下提供了非常有限的语音 API 实现,请参阅以下问题:

Google 语音 API 中的语法

此外,即使是原始规范在语法及其处理方面也不完整。

所以我想要的是能够说“嘿,foo”,类似于“Ok,Google”的工作方式。但是我的“foo”词不是一个实际的词,所以 SpeechRecognitionResult 没有我的自定义词。

此任务不是语音识别任务,因此无法通过语音识别引擎有效解决,它需要关键字定位,因为它需要过滤除您的关键字之外的所有语音。

您可以尝试使用 Pocketsphinx javascript 库 ( http://cmusphinx.sourceforge.net/2013/06/voice-enable-your-website-with-cmusphinx/ ) 来实现这一点。使用pocketsphinx,也更容易在那里调试发音问题。

另请参阅Web Speech API - SpeechGrammar,它专门描述了对语法的支持。

于 2013-09-17T17:13:19.513 回答