Convert pyaudio.paint16 to float
<p>I have data obtained by simple pyAudio recording:</p>

<pre><code>"""PyAudio example: Record a few seconds of audio and save to a WAVE file."""

import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
            channels=CHANNELS,
            rate=RATE,
            input=True,
            frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
  data = stream.read(CHUNK)
  frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()
</code></pre>

<p>and I need to process these in numpy (and not to be converted back). So I need to convert from pyaudio.paInt16 (or 24 and so on...) to something more manageable like float or double.</p>

<p>Is there a simple way?</p>