webkitSpeechRecognition

Research Mozilla's speech recognition web API

by humanzing

HTML

<!DOCTYPE HTML>
<html lang = "ru-RU">
  <head>
    <title>speechrecognitiondemo.html</title>
    <meta charset = "UTF-8" />
  </head>
  <body>
    <h1>Web Speech API Demo</h1>          
          <textarea id = "myTextArea" rows = "30" cols = "80"></textarea>
  </body>
</html>

JavaScript

var name = "ok";
var recognition;



if ('webkitSpeechRecognition' in window) {

  recognition = new webkitSpeechRecognition();
  // Option, false is meaning that when the user stops talking, speech recognition will end
  recognition.continuous = true;
  // Выбираем русский язык в качестве целевого
  recognition.lang = 'fr-FR';
  // Если хотим чтобы распознавание началось ещё до того, как пользователь закончит говорить 
  recognition.interimResults = true;

  recognition.onresult = function(event) {
    var result = event.results[event.resultIndex];
    var textarea = document.getElementById('myTextArea');
    console.log(event.results[0][0].transcript);
    if (event.results[0][0].transcript.indexOf("ok") == 0) {
      if (result.isFinal) {
        if (result[0].transcript.indexOf("ok") == 0) {
          textarea.value = 'Вы продикотвали: ' + result[0].transcript;
        } else {
          recognition.stop();
        }
        //alert('Вы продикотвали: ' + result[0].transcript);
      } else {
        textarea.value = 'Промежуточный результат: ' + result[0].transcript;
        //console.log('Промежуточный результат: ', result[0].transcript);
      }
    } else {
      recognition.stop();
    }
  };

  recognition.onstart = function() {
    /*var textarea = document.getElementById('myTextArea');
       textarea.value = "Hello!\nHow are you";*/
  }

  recognition.onend = function() {
    reload();
  };

  recognition.start();

} else {
  alert('webkitSpeechRecognition не поддерживается вашим браузером, используйте Google Chrome или Mozilla Firefox');
}

function reload() {
  setTimeout(function() {
    recognition.start();
  }, 2000);
}

startRecognizer();