我正在开发一种产品,需要从用户那里获取输入并根据它进行某些操作 . 我们通过打字通过聊天框实现了它,它正在服务于我们的目的 . 对于将来的版本,我们希望在聊天窗口中添加语音识别功能 . 我们考虑过使用
window.speechRecognition()|| window.webkitSpeechRecognition()
但我们发现浏览器中功能可用的是Google的Cloud Speech API . 当我们处理用户非常敏感的信息时,这将是安全问题 . 是否有其他替代方法可用于实现适用于任何浏览器的语音识别 .
3 回答
你可以试试:
Snowboy,服务器中没有存储wav . 他们为您训练NN,您可以下载模型的重量 .
Tensorflow:这真的很棒,但需要你做一些工作 . TTS的成功项目是DeepSpeech和相关的 .
您可以尝试IBM Watson 's Speech To Text service. It can be used from any browser and you can opt-out so user'的数据未记录在服务器端:https://console.bluemix.net/docs/services/watson/getting-started-logging.html#controlling-request-logging-for-watson-services
该服务的演示在这里:https://speech-to-text-demo.ng.bluemix.net/
它至少在Firefox和Chrome中有效,它基于以下开源SDK:https://github.com/watson-developer-cloud/speech-javascript-sdk
PS . 对于一般情况,当用户的数据不敏感时,最好不要选择退出,以便Watson可以利用这些数据来提高服务质量 .
显然
PocketSphinx.js
是目前唯一可行的方式 . 它是一个开源的语音到文本引擎,支持英语但不是很多语言 .Github上:
https://syl22-00.github.io/pocketsphinx.js/
https://github.com/syl22-00/pocketsphinx.js
但是,如果您要在Android设备的单个实例上运行代码(例如,在公共区域某处显示的设备),您可以在移动Chrome的设置中使用“下载离线语音识别语言” . 桌面浏览器没有这样的选项 .