语音识别,nodeJS

我目前正在开发一个工具,通过连接到不同的API来读取所有的通知。

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

就像软件说“鲍勃的一封邮件”一样,我想说“阅读”或“存档”。

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

节点JS中使语音文本成为可能的最好方法是什么?

我已经看到了很multithreading,但主要是使用浏览器,如果可能的话,我想在开始时避免这种情况。 可能吗?

另一个问题是一些软件需要input一个wav文件。 我没有任何文件,我只想让我的软件总是听我说的话,当我说一个命令。

你有什么信息可以做到吗?

干杯

为了获得audio数据到你的应用程序,你可以尝试像麦克风这样的模块,我没有使用它看起来很有希望。 这可以避免使用浏览器进行audioinput。

要进行实际的语音识别,您可以使用IBM Watson Developer Cloud的语音到文本服务。 这项服务支持一个websocket接口 ,这样你就可以拥有一个全双工的服务,将audio数据传送到云端并获得转录结果。 您可能需要考虑实施一种发病检测的forms,以避免将很多(相对)沉默传递给服务 – 这样,您可以保持在免费的层次。

还有一个文本到语音的服务,但是这听起来像你已经有了一个解决scheme,你的工具的一部分。

披露:我是IBM Watson的传道者。

要识别几条命令而不将它们传输到服务器,可以使用node-pocketsphinx模块。 可用于NPM。

识别连续stream中几个命令的代码应该如下所示:

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()) }); 

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

 read it /1e-20/ archive it /1e-20/ 

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

这两个答案都已经很好了,但是我想你正在寻找的是圣思 。 它负责照顾audio编码和stream媒体。 它总是在离线监听一个可定制的热门词汇(如Siri或Alexa)。 您也可以以编程方式触发侦听。 结合像say这样的模块,您可以通过执行以下操作来启用您的示例:

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

您还可以使用不同的热门词以不同的方式处理随后的认可演讲。 例如:
通知,最近的。” 和“ 发送消息 ,你今天好吗”

把它扔到你的桌子上带有麦克风的Pi或CHIP上,你有一个私人助理来读你的通知并对命令作出反应。

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

有些更复杂一些:
https://youtu.be/pm0F_WNoe9k?t=20s

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

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