使用WebRTC,Node.js和语音识别引擎进行实时语音识别

时间:2014-06-01 20:53:05

标签: javascript node.js speech-recognition webrtc

:一种。我想要实现的目标。

允许在网络浏览器中进行实时语音识别的网络应用程序(如this)。

B中。我目前正在考虑使用技术来实现A。

  • 的JavaScript
  • Node.js的
  • 的WebRTC
  • Microsoft Speech API或Pocketsphinx.js或其他(不能使用Web Speech API)

℃。非常基本的工作流程

  1. Web浏览器建立与节点服务器的连接(服务器充当信令服务器并且还提供静态文件)
  2. Web浏览器使用getUserMedia()获取音频流,并将用户的语音发送到节点服务器
  3. 节点服务器将正在接收的音频流传递给语音识别引擎进行分析
  4. 语音识别引擎将结果返回给节点服务器
  5. 节点服务器将文本结果发送回启动Web浏览器
  6. (节点服务器执行步骤1到5以处理来自其他浏览器的请求)
  7. d。问题

    1. Node.js是否适合实现C?
    2. 如何将收到的音频流从我的节点服务器传递到与服务器分开运行的语音识别引擎?
    3. 我的语音识别引擎是否可以作为另一个Node应用程序运行(如果我使用Pocketsphinx)?所以我的Node服务器与我的Node语音识别服务器进行通信。

2 个答案:

答案 0 :(得分:7)

  

Node.js是否适合实现C?

是的,虽然没有硬性要求。有些人正在使用gstreamer运行服务器,例如检查

http://kaljurand.github.io/dictate.js/

节点也应该没问题。

  

如何将收到的音频流从我的节点服务器传递到与服务器分开运行的语音识别引擎?

节点到节点通信的方法有很多种。其中一个是http://socket.io。还有plain sockets。特定框架取决于您对容错和可伸缩性的要求。

  

我的语音识别引擎是否可以作为另一个Node应用程序运行(如果我使用Pocketsphinx)?所以我的Node服务器与我的Node语音识别服务器进行通信。

是的,当然。您可以创建一个节点模块来扭曲pocketsphinx API。

更新:检查一下,它应该与你需要的相似:

http://github.com/cmusphinx/node-pocketsphinx

答案 1 :(得分:4)

你应该联系Andre Natal,他在去年秋天的Firefox峰会上展示了与此类似的演示,现在正在使用Firefox / FxOS实现离线语音识别的Google Summer of Code项目: http://cmusphinx.sourceforge.net/2014/04/speech-projects-on-gsoc-2014/