实时录制从两波制作.wav

问题描述

为了录制输入和输出语音,我做了两个流,一个用于麦克风,另一个用于立体声混音。这对我来说很好用


#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 (将#修改为@)