如何通过pywt从wav文件中像stft一样获取2D小波?

问题描述 投票:0回答:1

我正在尝试从声音文件(.wav)中获取特征;

  1. 我尝试过 stft 来获得 2D 特征(x 是时间,y 是频率)
  2. 我尝试过 pywt,但得到的是一维数组。如果我输入一个 1D (1000,) wav 数组,我得到一个 (500,) 数组
  3. 如何使用pywt获得像stft一样的2D特征?

这是 stft 特征结果:

python wavelet pywt
1个回答
4
投票

您可以通过以下方式使用 PyWavelet 来获得音频 wav 文件的连续小波变换。不过操作有点慢。

  import pywt
  import scipy.io.wavfile
  
  wavefile = 'path to the wavefile'
  # read the wavefile
  sampling_frequency, signal = scipy.io.wavfile.read(wavefile)
  #
  scales = (1, len(signal))
  coefficient, frequency = pywt.cwt(signal, scales, 'wavelet_type')
© www.soinside.com 2019 - 2024. All rights reserved.