我已经创建了一种形式,其中的问题将自动填充,答案将通过语音捕捉。我试过使用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();
}发布于 2017-03-20 11:25:24
您的代码没有错误,它应该在最新版本的chrome或opera中工作,但不确定Firefox、IE和Safari,只需尝试更新浏览器以确定您正在做什么。
https://stackoverflow.com/questions/42902212
复制相似问题