Utilizo hark para detectar cuándo el usuario deja de hablar, simplemente quiero devolver la resolución variable desde el flujo de usuario interno a la parada de la función principal; sin embargo, no estoy definido dentro del alcance del navegador. AIT
function stop() { window.AudioContext = window.AudioContext || window.webkitAudioContext; const context = new AudioContext(); var speaking ; var options = {}; var stopping_time; navigator.mediaDevices.getUserMedia({audio: true}).then((stream) => { const microphone = context.createMediaStreamSource(stream); var speechEvents = hark(stream, options); speechEvents.on('speaking', function () { console.log("speak"); stopping_time = Date.now(); speaking = true; }); speechEvents.on('stopped_speaking', function () { console.log("stop"); speaking = false; stopping_time = Date.now(); setTimeout(pause, 2000); }); function pause() { if (Math.abs(Date.now() - stopping_time) >= 1500 && speaking === false) { console.log("Assume finished answering since 2 seconds have passed"); microphone.mediaStream.getTracks().forEach(function (track) { track.stop(); }); res = true; } } }); return res; }