当前位置: 首页 > 面试题库 >

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

徐焱
2023-03-14
问题内容

我在一个学校项目中使用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,即单声道音频流。您需要使用两个声道进行立体声,并分别为左右声道生成数据。

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



 类似资料:
  • 播放音符或者歌曲 用法 Your browser does not support the video tag. 案例:小闹钟 功能:今天15:00:00后,用猫叫声叫醒我

  • 扬声器模块能够录制并播放声音。 净重量:24.5g 体积:48×48×13mm 参数 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95% 特点 支持录音存储 内置多种音效 配合软件支持AI语音识别 配合WiFi模块支持离线运行"

  • 光环板可以连接 mbuild 的 扬声器 模块进行编程。 1. 扬声器(1)播放音符(C4)以(0.25)拍 指定扬声器播放指定音符,并持续指定拍数。 示例 按下光环板的按钮,扬声器1会播放音符C4,持续0.25拍。 2. 扬声器(1)以(700)赫兹播放声音,持续(1)秒 指定扬声器以指定频率播放声音,单位为赫兹,并持续指定时间。 示例 按下光环板的按钮,扬声器1会播放频率为700赫兹的声音,持

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放

  • 该扬声器模块可以播放各类预置的音效,并以极为方便的方式支持用户存储自定义的音频文件到模块中,并通过积木块调用并播放。 存储自定义音频文件 通过以下步骤,存储自定义音频文件到该模块 1. 连接模块至电脑 使用 Micro-USB 数据线连接扬声器模块(Mirco-USB 接口)至电脑(USB 接口)。连接成功后,电脑将显示模块磁盘,打开磁盘即可查看模块包含的文件。 2. 存储自定义音频 将您想要播放

  • 我有像素2XL,这个设备有2个扬声器,一个在顶部,一个在底部。 所以,对于声音播放,我使用的是双簧管 https://github.com/google/oboe/tree/master/samples/hello-oboe 但我注意到声音只从顶部的一个扬声器播放。 但例如,PlayMarket-SoundCloud上有一个应用程序,如果我尝试从这个应用程序播放一些内容,我会听到声音来自顶部和底部