为什么 IPython.display.Audio() 在 for 循环中不起作用?



我有一个找不到解决方案的问题。我正在编写合成器。当我想使用import IPython.display as dis中的dis.Audio()作为听取我在数学上所做的事情的一种方式时,它不会输出应该输出的.wav文件。一段代码(对于当前测试(是:

FREQ_d = 523
SAMPLES_RATE = 40000
t_samples = np.linspace(0, 4, 4*SAMPLES_RATE)
for j in song.values():
if j['note'] == 'd':
dis.Audio(np.sin(2*np.pi*FREQ_d*t_samples), rate=SAMPLES_RATE)

如果没有问题。我已经确定了这一点。当我尝试写这样的东西时:

SAMPLES_RATE = 40000
t_samples = np.linspace(0, 4, 4*SAMPLES_RATE)
freq1 = 200
freq2 = 201
s1 = np.sin(2*np.pi*freq1*t_samples)
s2 = np.sin(2*np.pi*freq2*t_samples)
s = s1 + s2
dis.Audio(s, rate=SAMPLES_RATE)

没有问题,它会输出音频。

我不知道第一段代码中问题的原因。对不起,如果很难理解我的意思。

当你想在循环中显示它时,你应该这样称呼它:

...
for i in range(100):
dis.display(dis.Audio(...))
...

最新更新