gpt4 book ai didi

python - 使用 Sounddevice 连续播放音频

转载 作者:太空狗 更新时间:2023-10-29 12:09:06 25 4
gpt4 key购买 nike

我正在编写一个程序来通过网络流式传输音频,所以我有一个线程来记录数据和一个发送数据。测试音频时有明显的差距。我相信这是由于 sounddevice.play() 函数造成的,下面的示例也有同样的问题。

import sounddevice as sd

len = 5
fs = 44100
sd.default.device = [2,1]

myrec=sd.rec(int(fs*len), samplerate=fs, channels=2, blocking=True) #fill an array with some sound
while True:
sd.play(myrec, blocking=True)
#loop plays 5 second audio clip with slight gaps

间隙与播放长度一致,所以它似乎是由播放功能延迟引起的。在连续的音频中,这变得非常明显和烦人。同样的事情也发生在文档音频直通示例中 here .

有没有办法让播放不间断?

最佳答案

sd.play() 函数并不意味着可以快速连续地重复使用。在内部,它每次都会创建一个 sd.OutputStream,播放音频数据并再次关闭流。因为打开和关闭流,会出现间隙。这是预期的。

要连续播放,您应该使用 sd.OutputStream.write()函数,或者更好的是,带有自定义回调函数的 sd.OutputStream(如一些示例程序所示)。

The same thing also happens in the documentation audio passthrough example here.

这一定有不同的原因。这应该有效,对我来说效果很好。您能否更详细地描述问题?是否有消息打印到终端?

关于python - 使用 Sounddevice 连续播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54560927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com