Transmita audio de pyaudio con Flask a HTML5

Quiero transmitir el audio de mi micrófono (que se está grabando a través de pyaudio) a través de Flask a cualquier cliente que se conecte.

De aquí proviene el audio:

    def getSound(self):
        # Current chunk of audio data
        data = self.stream.read(self.CHUNK)
        self.frames.append(data)
        wave = self.save(list(self.frames))

        return data

Aquí está mi código de matraz:

@app.route('/audiofeed')
def audiofeed():
    def gen(microphone):
        while True:
            sound = microphone.getSound()
            #with open('tmp.wav', 'rb') as myfile:
            #   yield myfile.read()

            yield sound

    return Response(stream_with_context(gen(Microphone())))

Y este es el cliente:

    <audio controls>
        <source src="{{ url_for('audiofeed') }}" type="audio/x-wav;codec=pcm">
        Your browser does not support the audio element.
    </audio>

A veces funciona, pero la mayoría de las veces me da "[Errno 32] Tubo roto"

Al descomentar eso con open ("tmp.wav") - parte (self.save () opcionalmente toma todos los cuadros anteriores y los guarda en tmp.wav), obtengo una transmisión, pero todo lo que sale de los altavoces es un ruido de "clic".

Estoy abierto a cualquier sugerencia. ¿Cómo obtengo la entrada de mi micrófono en vivo (sin pregrabación) a un navegador web?

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta