如何重复播放声音样本,允许下一个循环与之前的

时间:2016-09-22 19:30:33

标签: python windows python-3.x audio

不确定这不是骗局,但到目前为止我发现的帖子并没有解决我的问题。

不久前,我写了一篇(音乐)metronome for Ubuntu。节拍器用python3/Gtk

编写

要重复播放节拍器(录制的声音样本),我使用subprocess.Popen()播放声音,使用ogg123作为cli工具:

subprocess.Popen(["ogg123", soundfile])

这很好用,我每分钟最多可以跑到240次。

在WIndows

我决定在Windows上重写项目(python3/tkinter/ttk)。然而,我很难播放声音,在较高的时间重复节拍样本。下一个节拍根本不会启动而前一个节拍(显然)尚未完成,播放节拍样本。

有没有办法,在Windows上的python3中,我可以在播放样本时开始播放下一个节拍?

目前,我正在使用winsound

winsound.Playsound()

如上所述,在循环中运行它。

1 个答案:

答案 0 :(得分:1)

您可以使用pydub进行音频处理,包括重复播放。

这是一个例子。您可以使用pydub site.

中的示例进一步开发此内容
from pydub import AudioSegment
from pydub.playback import play

n = 2

audio = AudioSegment.from_file("sound.wav") #your audio file
play(audio * n)  #Play audio 2 times

将上面的n更改为您需要的号码。