Linux上的PyAudio播放速度很慢

时间:2015-02-21 17:57:34

标签: python audio raspberry-pi pyaudio

我的覆盆子pi通过pyaudio播放我的wav音频文件效果不佳.wav文件已在我的(windows)笔记本电脑上创建,我现在想在我的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文件,看看它是延迟问题还是播放问题,现在显然是后者。

1 个答案:

答案 0 :(得分:0)

如果有人遇到同样的问题,我无法解决这个问题,但找到了另一种解决方案。我现在正在使用alsaudio库(https://sourceforge.net/projects/pyalsaaudio/),这很好地解决了这个问题。