this.speechRecognition.startListening(option).subscribe((matches: Array<string>) => {
this.voiceArray = matches;
// Now we get what user said so we can call again for active start listening.
this.start();
}, (onerror) => {
console.log('Error::::', onerror);
// Error occure when user does not say anything in that case we can call again.
this.start();
}
2条答案
按热度按时间pdkcd3nj1#
我提出了我的解决方案,没有办法通过插件正式使用继续监听。但我们可以使用递归概念来实现这一点。
注意:把所有的监听代码放在start()函数里面并调用它。但是你必须不断地处理那个烦人的哔哔声。为此,你可以使用 cordova audioManagment插件(这将使用户设备静音,而不是一直这样)。
w1jd8yoj2#
@Rajat.r2的解决方案并不完美,根据以下公式,它会消耗大量功率:apple doc on Speech Recognition (https://developer.apple.com/documentation/speech/sfspeechrecognizer)
我想最好的方法是使用唤醒词服务,如:https://picovoice.ai/docs/porcupine/,然后用原生语音识别来处理你剩下的东西。问题是这是一个付费服务。我会在我的一个应用程序上试试。