pip install pyaudio # as of python 3.10 this should download a wheel
一旦你安装了它,假设你想记录到一个16位的波形文件中,这个从文档中改编的片段应该会有所帮助:
import wave # this will probably also need to be installed
import pyaudio
RATE = 16000
FORMAT = pyaudio.paInt16 # 16-bit frames, ie audio is in 2 bytes
CHANNELS = 1 # mono recording, use 2 if you want stereo
CHUNK_SIZE = 1024 # bytes
RECORD_DURATION = 10 # how long the file will be in seconds
with wave.open("recording.wav", "wb") as wavefile:
p = pyaudio.PyAudio()
wavefile.setnchannels(CHANNELS)
wavefile.setsampwidth(p.get_sample_size(FORMAT))
wavefile.setframerate(RATE)
stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True)
for _ in range(0, RATE // CHUNK_SIZE * RECORD_DURATION):
wavefile.writeframes(stream.read(CHUNK_SIZE))
stream.close()
p.terminate()
4条答案
按热度按时间n9vozmp41#
我用pyaudio完成了工作
它附带了一个windows的二进制安装程序,甚至还有一个如何通过麦克风录音并保存到wave文件的例子。不错!我在Windows XP上用过,不确定在Vista上会怎么样,抱歉。
sbtkgmzw2#
最好的方法是使用ctypes库并从那里使用WinMM。mixerOpen将打开一个麦克风设备,您可以从那里轻松读取数据。应该很简单。
insrf1ej3#
你可以试试SWMixer。
yyhrrdl84#
作为Martinez' answer above的更新,我也使用了pyAudio (latest edition is 0.2.13 since Dec 26 2022)。
以下是如何在Windows上安装pyaudio(我在虚拟环境中安装的):
一旦你安装了它,假设你想记录到一个16位的波形文件中,这个从文档中改编的片段应该会有所帮助:
我无法将
with
用于stream
处理程序,但在pyAudio的未来版本中可能会这样做。