Как сделать распознавание речи непрерывным в течение фиксированного периода времени? - PullRequest
0 голосов
/ 28 июня 2018

Я хочу, чтобы мой JavaScript распознавания речи записывался непрерывно в течение фиксированного периода времени, скажем, 5 минут.

my 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 голосов
/ 28 июня 2018

Свойство 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)
}

И, пожалуйста, не надо, чтобы recognition останавливался ровно через 5 минут, но как минимум на 5 минут

MDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...