CONVERTIR VOZ A TEXTO EN JAVASCRIPT
Los navegadores modernos implementan la API Web Speech, pero esta está dividida en dos interfaces, independiente la una de la otra. SpeechSynthesis que permite convertir texto a voz. La que vamos a ver ahora es la interfaz SpeechRecognition que permite convertir voz a texto en javascript.La API de reconocimiento de voz es sorprendentemente precisa para una función de navegador gratuita. En unas pruebas que he realizado ha reconocido correctamente casi todas mis frases y supo qué palabras van juntas hasta formar discursos que tenían sentido. También te permite dictar caracteres especiales como puntos y aparte, signos de interrogación y líneas nuevas. Lo primero que hay que hacer es comprobar si el navegador tiene acceso a la API y mostrar un mensaje de error en el caso de que no:
try {
var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
var recognition = new SpeechRecognition();
}
catch(e) {
console.error(e);
}
recognition.onstart = function() {
instructions.text('Voice recognition activated. Try speaking into the microphone.');
}
recognition.onspeechend = function() {
instructions.text('You were quiet for a while so voice recognition turned itself off.');
}
recognition.onerror = function(event) {
if(event.error == 'no-speech') {
instructions.text('No speech was detected. Try again.');
};
}
//Función llamada desde un boton
function SpeechRecog() {
var output = document.getElementById("output"); ///input text donde se escribirá el texto
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;
var recognition = new SpeechRecognition();
// This runs when the speech recognition service starts
recognition.onstart = function() {};
recognition.onspeechend = function() {
recognition.stop();
}
// This runs when the speech recognition service returns result
recognition.onresult = function(event) {
var transcript = event.results[0][0].transcript;
var confidence = event.results[0][0].confidence;
output.value=transcript;
};
// start recognition
recognition.start();
}
Os aconsejo el artículo Convertir textos a voz