windows Python中的麦克风访问

olqngx59  于 2023-05-19  发布在  Windows
关注(0)|答案(4)|浏览(197)

我可以在Python中访问用户麦克风吗?
对不起,我忘了不是每个人都是读心者:Windows最低XP,但Vista的支持将是非常好的。

n9vozmp4

n9vozmp41#

我用pyaudio完成了工作
它附带了一个windows的二进制安装程序,甚至还有一个如何通过麦克风录音并保存到wave文件的例子。不错!我在Windows XP上用过,不确定在Vista上会怎么样,抱歉。

sbtkgmzw

sbtkgmzw2#

最好的方法是使用ctypes库并从那里使用WinMM。mixerOpen将打开一个麦克风设备,您可以从那里轻松读取数据。应该很简单。

yyhrrdl8

yyhrrdl84#

作为Martinez' answer above的更新,我也使用了pyAudio (latest edition is 0.2.13 since Dec 26 2022)
以下是如何在Windows上安装pyaudio(我在虚拟环境中安装的):

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()

我无法将with用于stream处理程序,但在pyAudio的未来版本中可能会这样做。

相关问题