Soy un estudiante y para un proyecto, quiero tener una página web que envíe un flujo de audio continuamente a un servidor de Python para poder aplicar la detección de palabras de activación y, finalmente, el reconocimiento de voz usando Python en el flujo de audio.
Por ahora, estoy usando puercoespín para la palabra de activación en la página web en lugar del servidor y cuando se detecta la palabra de activación, la grabadora de medios se usa para grabar 5 segundos de audio en un blob que se envía al servidor a través de WebSocket, que luego es convertido en np.array y alimentado en un método.
navigator.mediaDevices.getUserMedia( {audio: {sampleRate: 16000, channelCount: 1}}) .then(stream => { mediaStream = stream; }).catch(console.error); function StartMicrophone() { recorder = new MediaRecorder(mediaStream); let chunks = []; recorder.ondataavailable = function(e) { chunks.push(e.data); } recorder.start(); // send the whole bytes array recorder.onstop = (e) => { const blob = new Blob(chunks, { 'type' : 'audio/wav' }); chunks = []; socket.send(blob); } // Stop recording after 5s setTimeout(() => { recorder.stop(); }, 5000); }¿Habría alguna forma de enviar flujos continuos de datos (blob) al servidor y luego volver a la página web?
Gracias por cualquier entrada posible.