能够使用HTML5 / js api进行语音识别非常重要。 例如,我们有一个应用程序,可以使用webkitSpeechRecognition在现代chrome浏览器中成功运行。但是,它不会在cordova Web视图中运行,并给出未定义webkitSpeechRecognition的错误。
正如在其他地方指出的那样,cordova Webview当前不支持webkitSpeechRecognition:
Is webkitSpeechRecognition supported on Cordova?
以上问题询问是否支持。显然不是。我的问题是如何解决这个问题,并使基于Web api的语音识别在Cordova中工作-这是一个非常重要的问题。
可以使用专用的cordova插件在cordova中进行语音识别,例如cordova-plugin-speechrecognition,phonegap-plugin-speech-recognition。但是,这些有很多问题,并没有最终证明是合适的。例如,即使在同一个操作系统中,它们也可以按设备提供不同的支持和性能。而且,它们的行为方式不适合我们的用例,例如,当识别器算法确定语音“结束”时,语音记录就会结束,这可能会导致暂停,并且我们无法弄清楚如何抑制这个。
另请参阅: Android Continuous SpeechRecognition: Preventing End
另一种方法是将音频记录到文件,将文件转换为适当的格式,通过webAPI将文件提交到语音识别服务之一(例如google cloud语音),然后将结果取回。这种方法既复杂又涉及许多步骤,而且很慢。它不太适合需要实时结果的应用程序,例如对话。
是否可以加载包含webkitSpeechRecognition的备用Web视图?过去,Crosswalk曾经为此目的提供功能。
是否有支持webkitSpeechRecognition的Cordova的最新版本或Beta版(适用于android或ios或两者都理想)?或者,是否还有Cordova支持的其他一些用于语音识别的Web API也会达到类似的结果?
底线:如何实现?
谢谢