详细内容或原文请订阅后点击阅览
使用 Keras 进行音频分类:更近距离地观察在非深度学习部分
有时,深度学习被视为(并受到欢迎)避免繁琐的数据预处理的一种方式。然而,在某些情况下,各种预处理不仅有助于改善预测,而且本身就是一个引人入胜的话题。音频分类就是这样一个例子。在这篇文章中,我们在此博客的上一篇文章的基础上进行构建,这次重点介绍一些非深度学习背景。然后,我们将所解释的概念链接到近期发布的更新的 TensorFlow 代码。
来源:RStudio AI博客大约半年前,本博客刊登了一篇由 Daniel Falbel 撰写的文章,介绍如何使用 Keras 对口语进行分类。这篇文章引起了很多关注,毫不奇怪,人们开始思考如何将该代码应用于不同的数据集。我们将以此为动机,更深入地探索该文章中所做的预处理:如果我们知道网络输入为什么是这个样子,我们将能够在必要时适当地修改模型规范。
如果您有语音识别或一般信号处理方面的背景,那么这篇文章的介绍部分可能不会包含太多新闻。但是,您可能仍然对代码部分感兴趣,它展示了如何使用当前版本的 TensorFlow 来创建频谱图等操作。如果您没有这些背景,我们将邀请您踏上(希望)迷人的旅程,略微触及这个宇宙的一个更大的奥秘。
我们将使用 Daniel 在其文章中使用的相同数据集,即 Google 语音命令数据集的版本 1(Warden 2018)。该数据集由约 65,000 个 WAV 文件组成,长度为一秒或更短。每个文件都是由不同说话者说出的三十个单词之一的录音。
Google 语音命令数据集的版本 1 (Warden 2018) Warden 2018那么目标是训练一个网络来区分口语单词。网络的输入应该是什么样的?WAV 文件包含随时间变化的声波振幅。以下是与单词 bird、down、sheila 和 visual 对应的几个示例:
bird down sheila visual时域和频域
声波是一种随时间延伸的信号,类似于进入我们视觉系统的物体在空间中的延伸。在每个时间点,当前信号都取决于其过去。因此,用于建模的明显架构似乎是循环神经网络。
时间 空间 频率在这里我们看到声波(顶部)及其频率表示(底部)。
时域 Praat $