【问题标题】:Feature Extraction from an audio file using python使用python从音频文件中提取特征
【发布时间】:2014-01-10 06:09:14
【问题描述】:

我正在为一个学校项目编写和弦识别器。我必须从 mp3 文件中提取特征并使用带有和弦标签的 SVM。

如何从音频文件中提取频率。

是否有任何 scipy 包可以让我击败同步色度。

【问题讨论】:

    标签: scipy svm pattern-recognition feature-extraction


    【解决方案1】:

    如果要获取一些原始流(包括 WAV 文件,它只是一个原始流和围绕它的信封),即使使用自制工具,解码也会变得更加容易。在通常的类 Unix 下,您可以这样做,例如与mpg123 -smplayer -ao pcm:fast:file=$outfile 等等。但我怀疑你能找到一个最终支持所有压缩音频格式的库。

    (另外,SoX 可以很好地在所有未压缩格式之间进行转换。)

    【讨论】:

    • 如何从 wav 文件中获取功能?
    • 您可以使用任何光谱分析工具,其中有很多。在不了解您的情况的情况下,我不会提出任何建议,我只是将任务推断为两个更简单的组合。
    • 感谢您的帮助 :) 我想做一个用于识别音符的色谱图。我认为 matlab 有一个色度工具箱,但我似乎无法为 python 找到类似的东西。
    • 正如已经写过的here Bregman Audio-Visual Information Toolbox 给你一个色谱分析仪。
    【解决方案2】:

    您可以使用 python 的wave 包读取波形文件。获取频率的最简单方法可能是采用 FFT (numpy.fft) 并在输出中找到峰值。您需要将您的 FFT 调用设置为有意义的时间框(音高一致的窗口),否则您将看到一堆叠加的频率模式。

    玩得开心!

    【讨论】:

      【解决方案3】:

      您可以考虑计算一个色谱图,它就像一个频谱图,但在 Y 轴上使用音符而不是频率。 Librosa python 库有一个内置函数来计算它。 https://librosa.github.io/librosa/generated/librosa.feature.chroma_stft.html

      【讨论】:

        【解决方案4】:

        您正在寻找我的朋友,Librosa。它非常适合音频特征提取和操作。 它有一个单独的功能子模块。您可以在最低级别提取特征,并且他们的文档有一些非常容易理解的教程。

        这是他们网站的链接。连同示例代码

        https://librosa.github.io/librosa/index.html

        import librosa
        audio_file = 'your_audio_file.wav'
        signal , sampling_rate = librosa.load(audio_file, sr=16000)
        print(type(signal), type(sampling_rate)
        len(signal), sampling_rate
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-08
          • 2019-08-26
          • 2014-02-02
          • 1970-01-01
          • 1970-01-01
          • 2014-08-14
          • 2013-10-13
          • 2011-06-19
          相关资源
          最近更新 更多