A. What I am trying to implement.
一个Web应用程序,允许在Web浏览器中进行实时语音识别(如this) .
B. Technologies I am currently thinking of using to achieve A.
-
JavaScript
-
Node.js
-
WebRTC
-
Microsoft Speech API或Pocketsphinx.js或其他东西(不能使用Web Speech API)
C. Very basic workflow
-
Web浏览器 Build 与节点服务器的连接(服务器充当信令服务器并且还提供静态文件)
-
Web浏览器使用getUserMedia()获取音频流,并将用户的语音发送到节点服务器
-
节点服务器将正在接收的音频流传递给语音识别引擎进行分析
-
语音识别引擎将结果返回给节点服务器
-
节点服务器将文本结果发送回启动Web浏览器
-
(节点服务器执行步骤1到5以处理来自其他浏览器的请求)
D. Questions
-
Node.js是否适合实现C?
-
如何将接收到的音频流从我的节点服务器传递到与服务器分开运行的语音识别引擎?
-
我的语音识别引擎可以作为另一个Node应用程序运行(如果我使用Pocketsphinx)?所以我的Node服务器与我的Node语音识别服务器通信 .
2 回答
是的,虽然没有硬性要求 . 有些人正在运行带有gstreamer的服务器,例如check
http://kaljurand.github.io/dictate.js/
节点也应该没问题 .
节点到节点通信的方式有很多种 . 其中一个是http://socket.io . 还有plain sockets . 特定框架取决于您对容错和可伸缩性的要求 .
是的,当然 . 您可以创建一个节点模块来扭曲pocketsphinx API .
更新:检查一下,它应该类似于你需要的:
http://github.com/cmusphinx/node-pocketsphinx
您应该联系Andre Natal,他在去年秋天的Firefox峰会上展示了与此类似的演示,现在正在使用Firefox / FxOS实现离线语音识别的Google Summer of Code项目:http://cmusphinx.sourceforge.net/2014/04/speech-projects-on-gsoc-2014/