Pyaudio 如何仅在一个扬声器上播放声音 [英] Pyaudio How to get sound on only one speaker

查看:79
本文介绍了Pyaudio 如何仅在一个扬声器上播放声音的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个学校项目中使用 pyaudio,我试图让声音一次只在一个扬声器上播放.我的代码是这样的:

I'm using pyaudio in a school project and I'm trying to get the sound to play on only one speaker at a time. My code is like this:

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 只是生成一个波.

where wavefunc just generates a wave.

有人知道该怎么做吗?

推荐答案

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

Right now you are using channels=1, i.e., a mono audio stream. You need to use two channels for stereo and generate the data for the left and right channel separately.

这里是关于如何创建立体数据的简短教程.

这篇关于Pyaudio 如何仅在一个扬声器上播放声音的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆