擅长:python、mysql、java
<p>有一个名为<code>PyAudio</code>的库。你可以用它来实时记录。另外,在<code>numpy.fromstring()</code>和<code>numpy.hstack()</code>的帮助下,您可以获得所需的输出。请注意,下面的代码片段用于<code>MONO-CHANNEL</code>。</p>
<pre><code>import pyaudio
import numpy
RATE=16000
RECORD_SECONDS = 2.5
CHUNKSIZE = 1024
# initialize portaudio
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paInt16, channels=1, rate=RATE, input=True, frames_per_buffer=CHUNKSIZE)
frames = [] # A python-list of chunks(numpy.ndarray)
for _ in range(0, int(RATE / CHUNKSIZE * RECORD_SECONDS)):
data = stream.read(CHUNKSIZE)
frames.append(numpy.fromstring(data, dtype=numpy.int16))
#Convert the list of numpy-arrays into a 1D array (column-wise)
numpydata = numpy.hstack(frames)
# close stream
stream.stop_stream()
stream.close()
p.terminate()
</code></pre>
<p>这是一个经过测试的代码。它应该有魅力。为了检查记录的数据是否在<code>numpydata</code>中正确可用,可以在前面的代码之后添加以下代码片段。</p>
<pre><code>import scipy.io.wavefile as wav
wav.write('out.wav',RATE,numpydata)
</code></pre>
<p>这些行将把您的<code>numpydata</code>写入“out.wav”。播放文件以检查数据。</p>
<p>这是我在StackOverflow中的第一个响应。希望有帮助。</p>