与Keras的音频分类:人声的存在

eje*_*211 6 audio classification machine-learning keras

我想用Keras创建一个音频分类系统,它只是确定给定的样本是否包含人声.没有其他的.这将是我的第一次机器学习尝试.

此音频预处理器存在.它声称没有完成,但已分叉几次:

https://github.com/drscotthawley/audio-classifier-keras-cnn

我不明白这个怎么会起作用,但我准备尝试一下:

https://github.com/keunwoochoi/kapre

但是,假设我有一个工作,其余的过程是否与图像分类类似?基本上,我从未完全理解何时使用Softmax以及何时使用ReLu.一旦我将数据映射为张量,这与声音是否与图像相似?

Dan*_*ler 4

声音可以被视为一维图像并可通过一维卷积进行处理。通常,扩张卷积可能会起到很好的作用,请参阅Wave Nets

声音也可以被视为序列并与 RNN 层一起使用(但也许它们的数据量太大了)

对于您的情况,您只需要一个输出,'sigmoid'最后有一个激活和一个'binary_crossentropy'损失。

  • 结果 = 0 -> 没有声音
  • 结果 = 1 -> 有声音

何时使用“softmax”?

softmax 函数适用于多类问题(不是您的情况),您只需要一个类作为结果。softmax 函数的所有结果总和将为 1。它的目的就像每个类别的概率。

它主要用在最后一层,因为你只能得到类作为最终结果。

这对于只有一个类是正确的情况很有用。而在这种情况下,它与损失相得益彰categorical_crossentropy

模型中间的 Relu 和其他激活

这些都不是很规则。有很多可能性。我经常在图像卷积模型中看到relu。

重要的是要知道它们的“范围”。他们的输出有什么限制?

  • Sigmoid:从 0 到 1——在模型结束时,这将是存在/不存在分类的最佳选择。对于想要将许多可能的类放在一起的模型也很有用。
  • Tanh:从-1到1
  • Relu:从0到无限(它只是削减负值)
  • Softmax:从 0 到 1,但确保所有值的总和为 1。适合在多个类别中只需要 1 个类别的模型的末尾。