Web Speech API - Говори снова (сбросить предложение)

Я использую webkitSpeechRecognition(), чтобы создать свой собственный маленький диктофон.

Вот демонстрация (работает только с Chrome!)
http://jsfiddle.net/gsu4aod2/

Произнесите предложение и
1a.) Если текст правильный, нажмите кнопку «добавить предложение»
1b.) Если текст неверен, нажмите кнопку «говорить еще раз»

Моя проблема в том, что я не знаю, как «сбросить» текст. Когда я использую методы stop() и start(), текст удаляется, но я должен снова и снова подтверждать доступ к микрофону.

Любые идеи?

Спецификация Web Speech API https://www.google.com/intl/en/chrome/demos/speech.html


person Peter    schedule 07.04.2015    source источник
comment
См. Раздел Должны ли вопросы включать «теги» в свои заголовки? , где нет единого мнения, не должны!   -  person    schedule 07.04.2015


Ответы (1)


Вы получаете данные events.result, начиная с индекса 0. Вам нужно запустить цикл for с чем-то, что называется event.resultIndex.

Атрибут resultIndex: для resultIndex должен быть установлен самый низкий индекс в массиве «результатов», который был изменен. [источник]

recognition.onresult = function (event) {
    //console.log(event);
      var final = "";
      var interim = "";
      for (var i = event.resultIndex; i < event.results.length; ++i) {
        if (event.results[i].final) {
          final += event.results[i][0].transcript;
        } else {
          interim += event.results[i][0].transcript;
        }
      }

Демонстрация скрипта

person anpsmn    schedule 07.04.2015