问题描述
为了录制输入和输出语音,我做了两个流,一个用于麦克风,另一个用于立体声混音。这对我来说很好用
#stereo stream
self.stream2 = self.p.open(format=FORMAT,channels=2,rate=RATE,input=True,output=False,frames_per_buffer=chunk,input_device_index=self.get_stero_device(),stream_callback=self.get_callback1())
print("stream stereo created")
#mic stream
self.stream = self.p.open(format=FORMAT,channels=CHANNELS,input_device_index=2,stream_callback=self.get_callback())
print("stream mic created")
还有我的两个回调函数
def get_callback1(self):
def callback1(in_data,frame_count,time_info,status):
self.sterofile.writeframes(in_data)
self.j+=1
if self.j>2:
print("stero record")
#self.get_max_signal()
return (in_data,pyaudio.paContinue)
return (callback1)
def get_callback(self):
def callback(in_data,status):
self.micfile.writeframes(in_data)
self.i+=1
if self.i>10:
self.getResult()
print("mic record")
#self.get_max_signal()
self.get_time()
return (in_data,pyaudio.paContinue)
return (callback)
我的问题是如何将这两个音频合并为一个音频,就像实时录制的一样 请任何帮助都很好!
我试过这样的事情,但没有效果:(
w = wave.open("mic.wav",'rb')
v = wave.open("stereo1.wav",'rb')
data1 = w.readframes(w.getnframes())
data2 = v.readframes(v.getnframes())
data1=np.frombuffer(data1,dtype='<i2').reshape(-1,2)
data2=np.frombuffer(data2,2)
print(data1)
print(data2)
data = np.add(data1,data2)
output = wave.open("outfile.wav",'wb')
output.setnchannels(1)
output.setsampwidth(self.p.get_sample_size(FORMAT))
output.setframerate(RATE)
for i in range(len(data)):
output.writeframesraw(data[i][1])
output.close()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)