我正在尝试创建支持语音识别的Web应用程序。我已经成功实现了相同的功能,并且可以在桌面上正常工作。但是在移动设备和平板设备上,onResult调用了两次,第二个结果不是我期望的第一个。但是正因为如此,我无法获得预期的结果。是否有人面临同样的问题让我知道。
我希望我已经了解了您的问题,并且据我所知,您似乎在正确提取移动设备上的网络语音识别结果方面遇到了问题。
本地语音识别,最明显的是Android上的chrome / android浏览器,其语音识别结果与台式机版本略有不同。识别结果isFinal
为true的情况下,通常是完整的句子,可被移动浏览器识别,例如,在桌面chrome上,甚至返回的单词也是如此isFinal==true
。
这是最适合我的简化版本。
var mobile=false;
if(/*Use preferred method to detect mobile device*/){
mobile=true;
}
Recognizer.onresult = function(event){
var interimTranscripts = '';
var finalTranscripts = '';
for(var i = event.resultIndex; i < event.results.length; i++){
var transcript = event.results[i][0].transcript;
if(event.results[i].isFinal){
if(mobile){ //if running on a mobile device
finalTranscripts = transcript;
}else{
finalTranscripts += transcript;
}
}else{
if(mobile){ //if running on a mobile device
interimTranscripts = transcript;
}else{
interimTranscripts += transcript;
}
}
}
if(finalTranscripts){
target.value = finalTranscripts; //the output
if(!mobile){
Recognition.stop();
}
}
else if(interimTranscripts){
target.value = interimTranscripts + finalTranscripts;
}
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句