Webkit中的语音转文本功能中断

我创建了一个表格,问题会自动填充,答案通过语音捕获。我尝试使用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是否支持,建议你更新浏览器以确保功能正常。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注