小编典典

Pyaudio如何仅在一个扬声器上获得声音

python

我在一个学校项目中使用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。

有人知道该怎么办吗?


阅读 500

收藏
2021-01-20

共1个答案

小编典典

现在,您正在使用channels=1,即单声道音频流。您需要使用两个声道进行立体声,并分别为左右声道生成数据。

这是有关如何创建立体声数据的简短教程

2021-01-20