savez
8/23/2016 - 7:12 AM

Speech-to-text-browser

Speech-to-text-browser

var final_transcript = '';
var recognizing = false;
var ignore_onend;
var start_timestamp;
if (!('webkitSpeechRecognition' in window)) {
	} else {
	  var recognition = new webkitSpeechRecognition();
	  
	  recognition.continuous = true;
	  recognition.interimResults = true;

	  recognition.onstart = function() {
	    recognizing = true;
	  };

	  recognition.onerror = function(event) {
	    if (event.error == 'no-speech') {
	    }
	    if (event.error == 'audio-capture') {
	    }
	    if (event.error == 'not-allowed') {
	    }
	  };

	  recognition.onend = function() {
		  recognizing = false; // reset lo stato dello speech		  
	  };

	  recognition.onresult = function(event) {
		  var interim_transcript = '';
		    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_transcript = capitalize(final_transcript);
		    final_span.innerHTML = linebreak(final_transcript);
		    interim_span.innerHTML = linebreak(interim_transcript);
		    if (final_transcript || interim_transcript) {
		    }

	  };
	}

	var two_line = /\n\n/g;
	var one_line = /\n/g;
	function linebreak(s) {
	  return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
	}
	
	var first_char = /\S/;
	function capitalize(s) {
	  return s.replace(first_char, function(m) { return m.toUpperCase(); });
	}

function startButton(field) {
	  if (recognizing) {
	    recognition.stop();
	    recognizing = false;

	  }
	  
	  final_transcript = '';
	  recognition.lang = "it-IT";
	  recognition.start();

}