我目前正在使用 WebkitSpeechRecognition API 开发一个 Web 应用程序。问题是,当我第一次使用 .start() 初始化 API 并开始对着我的麦克风大喊大叫时,通常需要 20 多秒才能触发第一个 .onresult。与此同时,我想向用户反馈该工具正在启动,并在他可以开始说话时告诉他。不幸的是,只有在有语音输入时才会触发 onresult,而不是当用户耐心地等待初始化完成时才会触发。有没有办法检查识别是否准备就绪?
非常感谢。
我目前正在使用 WebkitSpeechRecognition API 开发一个 Web 应用程序。问题是,当我第一次使用 .start() 初始化 API 并开始对着我的麦克风大喊大叫时,通常需要 20 多秒才能触发第一个 .onresult。与此同时,我想向用户反馈该工具正在启动,并在他可以开始说话时告诉他。不幸的是,只有在有语音输入时才会触发 onresult,而不是当用户耐心地等待初始化完成时才会触发。有没有办法检查识别是否准备就绪?
非常感谢。
在初始化时将Continuous设置为false
见下面的例子
if ('webkitSpeechRecognition' in window) {
var recognition = new webkitSpeechRecognition();
recognition.continuous = false;
recognition.interimResults = false;
recognition.onstart = function () { $('#modalLoadText').hide(); $('#modalListenText').show(); $('#myModal').modal('show'); console.log("Start"); }
recognition.onresult = function (event) { console.log("Finish"); }
recognition.onerror = function (event) { console.log("Error"); }
recognition.onend = function () { $('#modalLoadText').show(); $('#modalListenText').hide(); $('#myModal').modal('hide'); console.log("End"); }
}