estoy usando api de voz web
https://www.google.com/intl/en/chrome/demos/speech.html
pero el micrófono se cierra automáticamente después de unos segundos, pero tengo que cerrar la mezcla solo cuando el usuario hace clic en los botones de cierre.
Cualquier solución para resolver este problema. Gracias
Debe marcar el servicio de reconocimiento como continuo y tal vez iniciar la grabadora nuevamente si se detiene después del tiempo de espera cuando no hay actividad.
<button onclick='toggleRecording()'>Toggle recorder</button> <div id='results'></div> <script> window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition; let recognition = new window.SpeechRecognition() let recording = false; let results = null; recognition.continuous = true; function toggleRecording() { if(recording) { recognition.onend = null; recognition.stop(); recording = false; // Printing all results we got so far. if(results) { let resultsDiv = document.getElementById('results') for(let i=0; i<results.length; ++i) resultsDiv.innerHTML = resultsDiv.innerHTML + results.item(i)[0].transcript } } else { recognition.onend = onEnd; recognition.start(); recording = true; } } function onEnd() { console.log('Speech recognition has stopped. Starting again ...'); recognition.start(); } function onSpeak(e) { results = e.results; console.log(e.results[e.results.length-1][0].transcript); } recognition.addEventListener('result', onSpeak); </script>