如何使语音识别在固定时间段内连续?

时间:2018-06-28 10:35:52

标签: javascript jquery speech-recognition speech-to-text webspeech-api

我想让我的语音识别JavaScript在固定时间段内连续录制5分钟。

我的js具有以下代码

try {
  var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
  var recognition = new SpeechRecognition();
}
catch(e) {
  // console.error(e);
  $('.no-browser-support').show();
  //$('.app').hide();
}

var noteTextarea = $('#note-textarea');
var instructions = $('#recording-instructions');
var notesList = $('ul#notes');

var noteContent = '';

// Get all notes from previous sessions and display them.
var notes = getAllNotes();
renderNotes(notes);


$( document ).ready(function() {
  // Handler for .ready() called.
   if (noteContent.length) {
      noteContent += ' ';
   }

   recognition.start();

});

1 个答案:

答案 0 :(得分:1)

delete接口的onend属性表示事件处理程序,该事件处理程序将在语音识别服务断开连接时(在结束事件触发时)运行。因此,当SpeechRecognition发生此事件时,您可以重新启动SpeechRecognition

所以,最后您应该拥有类似的东西

start()

要运行五分钟,您可以使用var recognition = new SpeechRecognition(); ... recognition.onend = function() { recognition.start(); } 之类的计时器等,并在setInterval回音中添加一个检查以检查是否再次开始onend。像

recognition

请注意,var counter = 0; var interval = setInterval(function(){ counter++; },1000) recognition.onend = function() { if(counter <= 5 * 60) recognition.start(); else clearInterval(interval) } 会在5分钟后准确停止,但至少持续5分钟

MDN