Playing audio in jupyter, in a for loop

▼魔方 西西 提交于 2020-01-03 03:49:07

问题


I have a ton of training data I need annotated, in order to do so I need to listen through a bunch of sound snippets and note what I hear. I wrote a small script for this in a notebook.

My main issue is that IPython display dosent show in loops. As an example:

import numpy
import IPython.display as ipd

sr = 22050# sample rate
T = 2.0# seconds
t = numpy.linspace(0, T, int(T*sr), endpoint=False)# time variable
x = 0.5*numpy.sin(2*numpy.pi*440*t)
ipd.Audio(x, rate=sr)

will show up with an audio box, and I will be able to play the sine wave.

But trying to play anything in a for loop yields nothing (such as:)

for i in range(10000000):
    x = 0.5*numpy.sin(i*numpy.pi*440*t)
    ipd.Audio(x, rate=sr)

If anyone has a good solution for looping through (and listening) a bunch of audio files (one at a time, since I need to loop through potentially hundreds of thousands sound snippets), I would be very much appreciative!


回答1:


To display the audio files within the for loop, you need to use IPython.display.display with the Audio object like so:

import numpy
import IPython.display as ipd


for i in range(10000000):
    x = 0.5*numpy.sin(i*numpy.pi*440*t)
    ipd.display(ipd.Audio(x, rate=sr))


来源:https://stackoverflow.com/questions/54417598/playing-audio-in-jupyter-in-a-for-loop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!