【问题标题】:Playing sound in a loop with python in jupyter notebook在 jupyter notebook 中使用 python 循环播放声音
【发布时间】:2019-04-04 00:51:03
【问题描述】:
我正在尝试使用 ipython 来显示音频。我的想法是我有一个循环执行一些任务,当该循环的任务完成时,我希望发出警报。因此,循环基本上看起来像这样:
for i in range(5):
if True:
IPython.display.Audio("alarm.mp3", autoplay=True)
else:
pass
但是,这根本不会播放任何声音,也不会创建小部件。我可以使用哪些其他库,或者如何使用 ipython 解决此问题?
【问题讨论】:
标签:
python
audio
jupyter-notebook
【解决方案1】:
库 sounddevice 可以解决问题。将音频文件转换为 wav,然后:
from scipy.io import wavfile
import sounddevice as sd
fs, data = wavfile.read('alarm.wav')
for i in range(5):
if True:
sd.play(data, fs)
else:
pass
这很完美。
【解决方案2】:
如果您仍在调查此问题。我刚刚发现了playsound。非常简单的基本 API,它是跨平台的,甚至没有任何依赖项。
您可以在 Jupyter notebook 中以阻塞方式(即在主线程上)或异步方式简单地调用它。
import playsound
playsound.playsound(path, block=True)
看看here