语音识别,nodeJS

Vic*_*ico 8 speech-recognition speech-to-text node.js

我正在开发一个工具,允许我阅读所有通知,这要归功于与不同API的连接.

它工作得很好,但现在我想用一些声音命令来做一些动作.

就像软件说"来自Bob的一封邮件"一样,我想说"读它"或"存档".

我的软件正在通过节点服务器运行,目前我没有任何浏览器实现,但它可以是一个计划.

节点JS中启用语音到文本的最佳方法是什么?

我已经看到了很多线程,但主要是它使用浏览器,如果可能的话,我想在开始时避免使用它.可能吗?

另一个问题是某些软件需要输入wav文件.我没有任何文件,我只是希望我的软件能够在我说出命令时总是听我说的反应.

你有关于我怎么做的信息吗?

干杯

eva*_*hen 6

这里的两个答案都已经很好,但我认为您正在寻找的是Sonus。它会为您处理音频编码和流媒体。它总是离线收听可定制的热门词(如 Siri 或 Alexa)。您还可以以编程方式触发侦听。结合像say 这样的模块,您可以通过执行以下操作来启用您的示例:

say.speak('One mail from Bob', function(err) {
  Sonus.trigger(sonus, 1) //start listening
});
Run Code Online (Sandbox Code Playgroud)

您还可以使用不同的启动指令以不同的方式处理后续识别出的语音。例如:
通知。最近。” 和“发送消息。你今天好吗”

把它扔到桌上有麦克风的树莓派或芯片上,你就有了一个私人助理,可以读取你的通知并对命令做出反应。

简单示例:https :
//twitter.com/_evnc/status/811290460174041090

更复杂的东西:https :
//youtu.be/pm0F_WNoe9k?t=20s

完整文档:https :
//github.com/evancohen/sonus/blob/master/docs/API.md

免责声明:这是我的项目:)


Nik*_*rev 5

要识别一些命令而不将它们流式传输到服务器,您可以使用node-pocketsphinx模块。在 NPM 中可用。

识别连续流中的少数命令的代码应如下所示:

var fs = require('fs');

var ps = require('pocketsphinx').ps;

modeldir = "../../pocketsphinx/model/en-us/"

var config = new ps.Decoder.defaultConfig();
config.setString("-hmm", modeldir + "en-us");
config.setString("-dict", modeldir + "cmudict-en-us.dict");
config.setString("-kws", "keyword list");
var decoder = new ps.Decoder(config);

fs.readFile("../../pocketsphinx/test/data/goforward.raw", function(err, data) {
    if (err) throw err;
    decoder.startUtt();
    decoder.processRaw(data, false, false);
    decoder.endUtt();
    console.log(decoder.hyp())
});
Run Code Online (Sandbox Code Playgroud)

而不是readFile您只是从麦克风读取数据并将其传递给识别器。要检测的关键字列表应如下所示:

read it /1e-20/
archive it /1e-20/
Run Code Online (Sandbox Code Playgroud)

有关使用 pocketsphinx 进行识别的更多详细信息,请参阅语音中的关键字识别使用 PocketSphinx 识别多个关键字