开始使用免费开始使用

声音的多次重复

在本练习中,您将从也许是最简单的分类技巧开始:对数据集的某个维度取平均值,并对结果进行可视化检查。

您将使用上一章介绍的心跳数据。有些录音是"正常"的心跳活动,另一些则是"异常"的活动。来看一看您是否能分辨出差异。

工作空间中提供了两个 DataFrame:normalabnormal,它们的形状均为 (n_times_points, n_audio_files),包含多段心跳音频。同时,采样频率已加载到名为 sfreq 的变量中。一个便捷的绘图函数 show_plot_and_make_titles() 也已在您的工作空间中可用。

本练习是课程的一部分

Python 中的时间序列机器学习

查看课程

练习说明

  • 首先,为这些音频文件创建时间数组(所有音频长度相同)。
  • 然后,将两个 DataFrame(按 normalabnormal 的顺序)中的数值合并堆叠,使其成为形状为 (n_audio_files, n_times_points) 的单个数组。
  • 最后,使用提供的代码遍历每个列表项/坐标轴,并在对应的轴对象上绘制随时间变化的音频。
  • 在左列绘制正常心跳,在右列绘制异常心跳。

交互式实操练习

通过完成这段示例代码来试试这个练习。

fig, axs = plt.subplots(3, 2, figsize=(15, 7), sharex=True, sharey=True)

# Calculate the time array
time = np.arange(____) / ____

# Stack the normal/abnormal audio so you can loop and plot
stacked_audio = np.hstack([____, ____]).T

# Loop through each audio file / ax object and plot
# .T.ravel() transposes the array, then unravels it into a 1-D vector for looping
for iaudio, ax in zip(stacked_audio, axs.T.ravel()):
    ax.plot(time, iaudio)
show_plot_and_make_titles()
编辑并运行代码