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

答:我正在尝试实施。

一个Web应用程序,允许在Web浏览器内进行实时语音识别( 如此 )。

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

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

C.非常基本的工作stream程

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

D.问题

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

Node.js是否适合实现C?

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

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

节点也应该没问题。

我怎样才能将接收到的audiostream从我的节点服务器传递到与服务器分开运行的语音识别引擎?

节点间通信有很多种方法。 其中之一是http://socket.io 。 也有普通的sockets 。 特定的框架取决于您对容错和可扩展性的要求。

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

是的,当然。 您可以创build一个节点模块来转换pocketsphinx API。

更新:检查这个,它应该类似于你所需要的:

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

你应该在去年秋天的Firefox峰会上与Andre Natal进行联系,他现在正在使用Firefox / FxOS实现离线语音识别的Google Summer of Code项目: http ://cmusphinx.sourceforge.net/2014/ 04 /语音项目上,GSOC 2014 /