python - 为什么 IPython.display.Audio() 在 for 循环中不起作用?
问题描述
我有一个我找不到解决方案的问题。我正在编写合成器。当我想使用dis.Audio()
fromimport IPython.display as dis
作为聆听我在数学上所做的事情的一种方式时,它不会输出应有的 .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)
if 没有问题。我已经确定了这一点。当我尝试写这样的东西时:
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(...))
...
推荐阅读
- php - 如何将 PHP 循环分成两部分?
- javascript - 图表js的多行标签
- android - 绑定服务时如何修复“包不在白名单中”?
- postgresql - Postgres:优化查询“WHERE id IN (...)”
- ajax - 如何将对象列表发送到我的控制器?
- .net-core - 适用于 .NET Core Azure WebJob 的 Application Insights
- c# - 如何在 Windows 安全弹出窗口中自动填充数据
- python - 为训练分类器读取海量图像数据
- excel - 删除重复项并替换一行中的条目 – Excel VBA
- php - phpword错误将base64图像导出到docx文件