使用PyAudio从USB录制音频

时间:2020-01-16 16:37:48

标签: python macos audio-recording

我正在尝试使用通过USB连接的麦克风录制5秒的音频片段,但似乎无法正常工作。我可以使用QuickTime录制该麦克风,但不能使用python录制。 脚本运行时,它将生成wave文件,但该文件没有任何声音。

这是我用来录制音频的代码。我已经设置了input_device_index = 4,这是我的MADIface XT麦克风的输入设备ID。

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,
                input_device_index=4)

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

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

经过更多研究,我发现PyCharm上的麦克风可能是权限问题。我尝试通过终端运行脚本,在最初运行该脚本时,它确实要求使用麦克风,但我仍然有一个空的WAV文件。我也尝试过仅使用内置麦克风,但仍然存在相同的问题。

非常感谢您的帮助。

0 个答案:

没有答案