PyAudio一次播放多种声音

Jos*_*sef 2 pyaudio python-3.x

如何将PyAudio的两种声音混合在一起。我浏览了整个互联网,但没有人回答这个问题。我还考虑使用audiolab或swMixer,但它们不支持Python 3.4 ...我正在考虑将其字节字符串转换为numpy数组,将其与另一个数组合并,然后再按字符串转换回。那可能吗?

wf1 = wave.open("YYY.wav", 'rb')
wf1 = wave.open("XXX.wav", 'rb')

p = pyaudio.PyAudio()

def callback(in_data, frame_count, time_info, status):
    data1 = wf1.readframes(frame_count)
    data2 = wf2.readframes(frame_count)

    #Here i need to mix these two byte strings together

    return (data, pyaudio.paContinue)
Run Code Online (Sandbox Code Playgroud)

您是我的最后希望,谢谢您的进步!

Jos*_*sef 5

我自己找到了解决方案,这很简单。因此,我将在此处发布代码以帮助他人:

wf1 = wave.open("YYY.wav", 'rb')
wf1 = wave.open("XXX.wav", 'rb')

def callback(in_data, frame_count, time_info, status):
    data1 = wf.readframes(frame_count)
    data2 = wf1.readframes(frame_count)
    decodeddata1 = numpy.fromstring(data1, numpy.int16)
    decodeddata2 = numpy.fromstring(data2, numpy.int16)
    newdata = (decodeddata1 * 0.5 + decodeddata2* 0.5).astype(numpy.int16)
    return (result.tostring(), pyaudio.paContinue)
Run Code Online (Sandbox Code Playgroud)