Jupyter notebook 中的音频小部件**不**播放。如何让小部件播放音频?
Audio widget within Jupyter notebook is **not** playing. How can I get the widget to play the audio?
我在 VS Code 的 Jupyter notebook 中编写代码。我希望在我的数据集中播放一些音频。但是,当我执行单元格时,控制台没有报告任何错误,生成了小部件,但是小部件显示 0:00 / 0:00 (见下文),表示没有声音可以播放。
下面,我列出了两种重现错误的方法。
- 我从hub data store. Looking specifically at the spoken MNIST数据集中获取了数据,我无法从
audio
张量中获取数据来播放
import hub
from IPython.display import display, Audio
from ipywidgets import interactive
# Obtain the data using the hub module
ds = hub.load("hub://activeloop/spoken_mnist")
# Create widget
sample = ds.audio[0].numpy()
display(Audio(data=sample, rate = 8000, autoplay=True))
- 第二个示例是一个测试(从另一个 post 复制),我 运行 看看是数据有问题还是我的控制台、环境有问题,等
# Same imports as shown above
# Toy Function to play beats in notebook
def beat_freq(f1=220.0, f2=224.0):
max_time = 5
rate = 8000
times = np.linspace(0,max_time,rate*max_time)
signal = np.sin(2*np.pi*f1*times) + np.sin(2*np.pi*f2*times)
display(Audio(data=signal, rate=rate))
return signal
v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))
display(v)
我相信如果数据有问题(这是一个众所周知的数据集所以,我怀疑它),那么只有第二个会播放。如果它与 IDE 或其他东西有关,那么两者都不起作用,就像现在的情况一样。
抱歉回复晚了!以后请用 activeloop 标记问题,这样更容易整理(或直接在社区 slack 中联系我们 -> slack.activeloop.ai)。
关于Free Spoken Digit Dataset, I managed to track the error with your usage of activeloop hub和音频显示。
将 [:,0] 添加到第 9 行将有助于修复 Colab 上的显示,因为 Audio 期望 one-dimensional 数据
%matplotlib inline
import hub
from IPython.display import display, Audio
from ipywidgets import interactive
# Obtain the data using the hub module
ds = hub.load("hub://activeloop/spoken_mnist")
# Create widget
sample = ds.audio[0].numpy()[:,0]
display(Audio(data=sample, rate = 8000, autoplay=True))
(当我们上传数据集时,我们决定将音频上传为(N,C),其中 C 是通道数,对于特定数据集恰好为 1。添加的维度不会自动添加)
关于 VScode... 不幸的是,音频仍然无法正常工作(不是因为我们,而是 VScode),但您仍然可以尝试可视化 Free Spoken Digit Dataset(你也可以在那里播放音乐)。希望这能满足您的需求!
如果您还有其他问题,请告诉我们。
来自 Activeloop 的 Mikayel
我在 VS Code 的 Jupyter notebook 中编写代码。我希望在我的数据集中播放一些音频。但是,当我执行单元格时,控制台没有报告任何错误,生成了小部件,但是小部件显示 0:00 / 0:00 (见下文),表示没有声音可以播放。
下面,我列出了两种重现错误的方法。
- 我从hub data store. Looking specifically at the spoken MNIST数据集中获取了数据,我无法从
audio
张量中获取数据来播放
import hub
from IPython.display import display, Audio
from ipywidgets import interactive
# Obtain the data using the hub module
ds = hub.load("hub://activeloop/spoken_mnist")
# Create widget
sample = ds.audio[0].numpy()
display(Audio(data=sample, rate = 8000, autoplay=True))
- 第二个示例是一个测试(从另一个 post 复制),我 运行 看看是数据有问题还是我的控制台、环境有问题,等
# Same imports as shown above
# Toy Function to play beats in notebook
def beat_freq(f1=220.0, f2=224.0):
max_time = 5
rate = 8000
times = np.linspace(0,max_time,rate*max_time)
signal = np.sin(2*np.pi*f1*times) + np.sin(2*np.pi*f2*times)
display(Audio(data=signal, rate=rate))
return signal
v = interactive(beat_freq, f1=(200.0,300.0), f2=(200.0,300.0))
display(v)
我相信如果数据有问题(这是一个众所周知的数据集所以,我怀疑它),那么只有第二个会播放。如果它与 IDE 或其他东西有关,那么两者都不起作用,就像现在的情况一样。
抱歉回复晚了!以后请用 activeloop 标记问题,这样更容易整理(或直接在社区 slack 中联系我们 -> slack.activeloop.ai)。
关于Free Spoken Digit Dataset, I managed to track the error with your usage of activeloop hub和音频显示。
将 [:,0] 添加到第 9 行将有助于修复 Colab 上的显示,因为 Audio 期望 one-dimensional 数据
%matplotlib inline
import hub
from IPython.display import display, Audio
from ipywidgets import interactive
# Obtain the data using the hub module
ds = hub.load("hub://activeloop/spoken_mnist")
# Create widget
sample = ds.audio[0].numpy()[:,0]
display(Audio(data=sample, rate = 8000, autoplay=True))
(当我们上传数据集时,我们决定将音频上传为(N,C),其中 C 是通道数,对于特定数据集恰好为 1。添加的维度不会自动添加)
关于 VScode... 不幸的是,音频仍然无法正常工作(不是因为我们,而是 VScode),但您仍然可以尝试可视化 Free Spoken Digit Dataset(你也可以在那里播放音乐)。希望这能满足您的需求!
如果您还有其他问题,请告诉我们。
来自 Activeloop 的 Mikayel