【问题标题】:How do I represent an audio file for use in a neural network?如何表示用于神经网络的音频文件?
【发布时间】:2019-06-07 00:11:26
【问题描述】:

我想在 Keras(tensorflow、python)中创建一个基本的卷积自动编码器,用于音频(MP3、WAV 等)文件。

基本上,这就是我正在做的事情:

1) 将 mp3 转换为数组

    def mp3_to_array(original_mp3):
        blah blah blah
        return original_array

2) 通过自动编码器运行数组,输出一个相似的(但有损,因为自动编码器操作)数组

    def autoencoder(original_array):
        autoencoder stuff
        return new_array

3) 将数组转换为 mp3

    def array_to_mp3(new_array):
        halb halb halb
        return new_mp3

我知道 Mel Spectrograms 和 Mel-frequency cepstral coefficients (mfcc's) 常用于分类系统。据我所知,我不能使用这些,因为它们不能在没有重大损失的情况下转换回 mp3。

是否有适合在卷积神经网络中使用的基于数组的无损 *(或几乎无损)的表示转换方法,将 mp3 转换为数组,反之亦然?

编辑:具体来说,我问的是第 1 步和第 3 步。我知道第 2 步本质上是有损的。

提前致谢!

【问题讨论】:

  • 我会说这不是关于原始音频表示的问题,而是更多关于是否存在我会拒绝的无损卷积变换的问题

标签: python audio keras neural-network conv-neural-network


【解决方案1】:

我会说这不是关于原始音频表示的问题,而更多的是关于是否存在我会拒绝的无损卷积变换的问题

...顺便说一句,有很多无损(或几乎无损)的转换,例如,当您将音频发送到傅立叶变换以将其从时域转换为其频域表示然后执行第二次转换时将频域表示发送到逆傅里叶变换您现在将拥有正常的时域音频,它将您的原始源输入音频匹配到任意精度水平......我在编写一个给定输入灰度照片的 golang 项目后知道这一点它被解析以将每个像素的光强度级别信息合成为单通道音频信号(傅里叶逆变换),然后对其进行监听(傅里叶变换)以合成与输入照片匹配的输出照片

如果您关心比特级别的准确性(无损),您应该避免使用 mp3 并使用无损编解码器,或者只为初学者使用 WAV 格式……任何音频 CD 都使用 WAV,它只是 PCM 中的音频曲线……它只是音频曲线上的点(两个通道的样本)......在你上面的步骤 2 中)如果你只是将音频曲线直接输入你的神经网络,它将得到你的无损音频数据......典型的点自编码器根据定义是一种有损转换,因为它丢弃了位级信息

将音频用作神经网络的输入时存在一些挑战

1) 音频具有时间方面的特性,因此根据您的需要,您可能需要批量处理音频样本块(以制作一系列样本窗口)并将每个窗口作为数据单元馈送到 NN 或也许不是

2) 与图像一样,音频具有大量数据点……也就是说,原始音频曲线上的每个点都在上游进行采样,现在通常每通道每秒有 44,100 个样本,其中语义含义通常是结果这些样本的分组...例如,一个口语单词是一个聚合概念,很容易涉及数千个甚至可能是数千个音频样本数据点的集合...因此正确创建这些音频样本窗口至关重要...捆绑到创建中样本窗口的设计决定如何创建下一个窗口:下一个窗口是否包含来自前一个窗口的一些样本或所有样本都是新的......每个窗口中的音频样本数量是否相同或是否变化

所以打开输入音频文件并将其读入缓冲区...确认该缓冲区已创建好只需将其写入文件然后播放该文件并验证其播放正常...使用免费开源名为 Audacity 的音频工具,用于打开音频文件并查看其音频曲线

【讨论】:

  • 嗨,斯科特,感谢您的详尽回答——您对我们很有帮助。公平地说,我想我的问题用错了。我只需要一种将音频(mp3、wav 等)转换为数组的好方法,然后我可以将其传递给 NN。我只需要确保将该音频转换为数组的过程实际上不会更改数据,反之亦然。
  • 另外,WAV 格式也很重要。我刚接触音频,完全忽略了这一点。
猜你喜欢
  • 2017-12-17
  • 2014-04-23
  • 2014-02-25
  • 2017-06-08
  • 2017-04-22
  • 2016-08-29
  • 2020-02-25
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多