我创建了一个表格,问题会自动填充,答案通过语音捕获。我尝试使用JS的webkit库,但它无法正常工作,语音无法被识别。它会拾取之前的语音文本并持续添加到新生成的字符串中,但有时也能正常工作。如果有人在进行语音捕获并转换为文本,请告诉我。任何帮助都将不胜感激。
代码如下-
var recognition = new webkitSpeechRecognition();recognition.lang = "en-IN";// recognition.lang = "hi-IN";function startTextToSpeech(){var recognizing = false;var ignore_onend;var start_timestamp;recognition.continuous = true;recognition.interimResults = true;var interim_text = document.getElementById('Mytext')var final_text = document.getElementById('final_span')var textExtracted = "";var final_transcript = '';recognition.onstart = function() { recognizing = true; };recognition.onerror = function(event) { console.log("some error ouccured"); console.log(event) recognition.stop(); try{ recognition.start(); }catch(ex){ console.log(ex) } if (event.error == 'no-speech') { ignore_onend = true; } if (event.error == 'audio-capture') { ignore_onend = true; } if (event.error == 'not-allowed') { ignore_onend = true; } }; recognition.onend = function() { console.log("ended") // recognizing = false; // recognition.start(); // //switchApi(); // if (ignore_onend) { // $("#toggleStart").text("Start"); // $("#listenStatus").text("Speak something to convert it to text"); // //clearInterval(StartAnalyzing); // return; // } recognition.stop(); try{ recognition.start(); }catch(ex){ console.log(ex) } // if (window.getSelection) { // recognition.start(); // switchApi(); // window.getSelection().removeAllRanges(); // var range = document.createRange(); // range.selectNode(document.getElementById('final_span')); // window.getSelection().addRange(range); // } };recognition.onresult = function(event) { var interim_transcript = ''; if (typeof(event.results) == 'undefined') { recognition.onend = null; //recognition.stop(); return; } for (var i = event.resultIndex; i < event.results.length; ++i) { if (event.results[i].isFinal) { final_transcript += event.results[i][0].transcript; } else { interim_transcript += event.results[i][0].transcript; } } final_text.innerHTML = final_transcript; interim_text.innerHTML = interim_transcript; textExtracted = final_transcript+interim_transcript;}recognition.start();}
回答:
你的代码没有错误,它应该能在最新版本的Chrome或Opera中工作,但不确定Firefox、IE和Safari是否支持,建议你更新浏览器以确保功能正常。