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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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