linux 上的 PyAudio 播放缓慢

PyAudio playback slow on linux

通过 pyaudio 在我的 raspberry pi 上播放我的 wav 音频文件效果不佳 我的 (windows) 笔记本电脑上创建了 .wav 文件,我现在想在我的 rpi 上正确播放它们。

我正在用pyaudio自带的测试脚本进行测试

import pyaudio
import wave

chunk = 1024
wf = wave.open('sample.wav', 'rb')
p = pyaudio.PyAudio()

stream = p.open(
    format = p.get_format_from_width(wf.getsampwidth()),
    channels = wf.getnchannels(),
    rate = wf.getframerate(),
    output = True)
data = wf.readframes(chunk)

while data != '':
    stream.write(data)
    data = wf.readframes(chunk)

stream.close()
p.terminate()

我也试过将 pyaudio 流的设置强制设置为我用来录制它的设置,但这没有帮助。

当我从命令行使用 aplay 播放时,播放效果很好。

我在其他论坛上看到过一些其他帖子也有这个问题,但还没有人给出答案。

一些进一步的上下文:

我正在尝试将音频从我的笔记本电脑流式传输到我的 rpi,然后从那里输出到我的扬声器系统。我使用 VB-Audio Virtual Cable 捕获音频。当我在笔记本电脑上玩东西时,我会打开虚拟电缆和我的 python 代码。 pyaudio 然后捕获它,并将其发送到 rpi,rpi 收集它们(缓冲它们)然后播放它。如果我将它保持在 windows,这一切都很好,但是当我将它移植到我的 rpi 时,播放质量变得很糟糕。

然后我开始测试播放简单的 wav 文件,看看是延迟问题还是播放问题,现在显然是后者。

如果有人 运行 遇到同样的问题,我没能解决这个问题,但找到了替代解决方案。我现在正在使用 alsaudio 库 (https://sourceforge.net/projects/pyalsaaudio/),它可以很好地解决问题。