我正在尝试使用通过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文件。我也尝试过仅使用内置麦克风,但仍然存在相同的问题。
非常感谢您的帮助。