Python sounddevice无法在树莓派上产生声音

问题描述

我正在尝试在树莓派3a +上编写一个小型合成器(波形发生器)的入门。 首先,我尝试使用python的sounddevice模块播放来自numpy-数组的流。 但是,我的树莓派没有输出任何声音,这很奇怪,因为完全相同的代码在我的笔记本电脑上可以正常工作,并且产生出令人满意的,稳定的正弦-波动音。

我使用的代码基本上只是声音设备文档中的复制示例代码,可以在这里找到:https://python-sounddevice.readthedocs.io/en/0.4.1/examples.html#play-a-sine-signal

我认为已经在pi(portAudio等)上下载了所有必需的模块,因为我已经在工作代码的笔记本电脑上下载了相同的模块。

是声音设备无法处理pi硬件的某些部分,还是我弄乱了ALSA中的某个地方-设置(尽管我检查了几次)?

有趣的是,pi可以通过simpleaudio-模块完美地播放声音,可悲的是,对于我打算做的事情来说,它的通用性不足,这就是为什么我需要sounddevice或类似的东西。 如果有人能在这里帮助我,我将非常感激。

解决方法

您需要将/etc/asounc.config中的采样率设置为计划使用的采样率。

pcm.!default {
    rate 48000
    type hw
    card 0
    device 0
}

ctl.!default {
        type hw
        card 0
}
  • 通过添加“ rate”,然后加上您打算使用的采样率来实现此目的

您的应用程序需要使用此采样率才能正确工作,因此请确保在您的代码中正确设置了采样率。

希望这可以解决您的问题