Jan*_*yne 5 python ipython jupyter-notebook
我有一个音频数据列表,我想在 Jupyter 笔记本中显示这些数据,IPython.display.Audio
以便这些控件从左向右彼此相邻流动。我尝试使用,ipywidgets.HBox
但收到错误,因为IPython.display.Audio
不是 a 的实例Widget
。
我的音频数据列表如下所示,其中y
是音频数据,sr
是采样率。
data = [(y1, sr1), (y2, sr2), ..., (yN, srN)]
Run Code Online (Sandbox Code Playgroud)
我试图做的是类似以下的事情。
audio_widgets = [display.Audio(audio[0], sr=audio[1]) for audio in data]
audio_hbox = widgets.HBox(audio_widgets) # TraitError happens here
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
TraitError:HBox 实例的“children”特征的元素必须是 Widget,但指定了 <IPython.lib.display.Audio object> <class 'IPython.lib.display.Audio'> 的值。
显示音频显示的一种方法是简单地将它们显示在另一个之上(当存在大量音频数据时,这会占用大量垂直空间)。
for audio in data:
audio_widget = display.Audio(audio[0], sr=audio[1])
display(audio_widget)
Run Code Online (Sandbox Code Playgroud)
关于如何控制音频控件的布局显示有什么想法吗?
您可以将Audio
s 显示到输出小部件中。任何在笔记本中良好显示的内容也将在输出小部件中良好显示。您可以使用上下文管理器将输出定向到小部件,请参阅下面的示例代码。
from IPython.display import Audio, display
from ipywidgets import widgets
audio_widgets = []
for (audio, sample_rate) in data:
out = widgets.Output()
with out:
display(Audio(data=audio, rate=sample_rate))
audio_widgets.append(out)
widgets.HBox(audio_widgets)
Run Code Online (Sandbox Code Playgroud)
您还可以print
将display
其他内容放入同一输出小部件旁边Audio
- 可能在每个音频片段旁边有一个标签。
这是一个很晚的答案,但无论如何))。
归档时间: |
|
查看次数: |
1794 次 |
最近记录: |