问题描述
我正在开展一个需要一系列麦克风的声源本地化项目。我有 4 个麦克风,带有连接到 USB 音频适配器的音频插孔。最后,我使用 4x1 USB 集线器将所有麦克风适配器组件连接到我的 PC,以使用 Python PyAudio 模块读取传入信号。
这是我的配置:
这是我的 Python 代码:
import pyaudio
import wave
CHUNK = 2
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 8900
RECORD_SECONDS = 2
WAVE_OUTPUT_FILENAME = "output.wav"
NUM_OF_MICS = 4
p = pyaudio.PyAudio()
# Create a stream for each microphone with the IDs 1,2,3,4
streams = [p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK,input_device_index=idx) for idx in range(1,NUM_OF_MICS + 1)]
print("* recording")
# Record 2 seconds of Audio for each
frames = []
for j in range(NUM_OF_MICS):
row = []
for i in range(0,int(RATE / CHUNK * RECORD_SECONDS)):
row.append(streams[j].read(CHUNK,exception_on_overflow=False))
frames.append(row)
for stream in streams:
stream.stop_stream()
stream.close()
p.terminate()
print("* done recording")
# Save audio with the names {1,4}_output.wav
for j in range(NUM_OF_MICS):
wf = wave.open(str(j) + "_" + WAVE_OUTPUT_FILENAME,'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames[j]))
wf.close()
看看这个问题,当我只选择其中之一并开始仅使用它进行录音时,我能够清楚地读取麦克风输出。但是,当我处理上面的代码时,名称为 {0,2}_output.wav 的录音听起来不错,但其他 - {1,3}_output.wav 只包含杂乱的声音(至少这是我听到的) .
我已经分别测试了所有插头和设备,它们都可以正常工作。我愿意接受建议。
编辑:
当我只将 2 个麦克风连接到 HUB 并设置变量 NUM_OF_MICS = 2
时,我会正常收到两种声音 {0,1}_output.wav。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)