我在一个学校项目中使用pyaudio,试图将声音一次只在一个扬声器上播放。我的代码是这样的:
import pyaudio p = pyaudio.PyAduio() def play_wave(stream, wave): chunks = [] chunks.append(wave) chunk = concatenate(chunks)*0.1 stream.write(chunk.astype(np.float32).tostring()) def play_sound(freq, t, A=0.2): wave, A = wavefunc(t, freq, A=A) S = sigmoid(t) wave = wave*S stream = p.open(channels=1, rate=44100, format=pyaudio.paFloat32, output=True) play_wave(stream,wave) stream.close()
在这里wavefunc只会生成一个wave。
有人知道该怎么办吗?
现在,您正在使用channels=1,即单声道音频流。您需要使用两个声道进行立体声,并分别为左右声道生成数据。
channels=1
这是有关如何创建立体声数据的简短教程。