微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实时录制从两波制作.wav

如何解决实时录制从两波制作.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 举报,一经查实,本站将立刻删除。