在STFT中设置窗口长度和帧长度以进行音频聚类

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

我希望更好地理解在短时傅立叶变换(STFT)中设置窗口和 fft 长度的后果。我的目标是增加简短发声(话语)的聚类,并且我正在尝试提高频率分辨率并压缩时间成分。

设置

window frame > fft length
window frame == fft
长度和
window frame < fft length
有什么影响?


为了清楚起见,我参考:

  • 窗口长度:输入信号的每个窗口段中的样本数(在tensorflow中为
    frame_length
    ,在librosa中为
    win_length
    ,有时在其他包中称为
    fft_size
  • hop:连续帧之间的样本数
  • fft_length :应用于每帧的快速傅立叶变换 (FFT) 的长度(在张量流中为
    fft_length
    ,在 librosa 中为
    n_fft

背景

[1] https://stackoverflow.com/a/29866550/305883 我知道 STFT 最适合被认为是稳定的声音,因此对于语音来说,一个不错的选择是选择声音被认为是稳定的时间。

[2] https://www.researchgate.net/post/Fast_Fourier_Transform_FFT_for_soundscape_ecology_studies_how_to_define_window_size_the_trade-off_ Between_time_and_Frequency_Resolution

就我而言,我正在与动物一起工作,我只能做出“明智的”猜测:我选择以毫秒为单位的时间跨度,并根据采样率选择一个窗口(例如,假设 250000 采样率下的稳定性为 40 毫秒 = > 10000 帧,8192 窗口是最接近的 2 次方)

[3] https://support.ircam.fr/docs/AudioSculpt/3.0/co/FFT%20Size.html

我知道窗口是主要参数,我可以通过增加窗口和ftt长度来提高频率分辨率。

主要参数是窗口。我还可以通过零填充对帧进行过采样和插值,即设置 fft 长度比窗口更短:fft 长度< window

但是,该消息来源还明确指出 ftt 独立于窗口,并且我也可以设置更宽。

[4] 事实上,在 Tensorflow 中我可以设置所有选项 -

window frame > fft length
window frame == fft
长度和
window frame < fft length

但是*不在Librosa中,其中必须是“fft length >= window”示例:

librosa.pyin(y, 
             sr=250000,
             frame_length=4096, 
             win_length=8192, 
           )

# ParameterError: win_length=8192 must be less than frame_length=4096


librosa.stft(y, n_fft=2048, hop_length=None, win_length=8192)

# ParameterError: Target size (2048) must be at least input size (8192)

我对术语和错误感到困惑。

window frame > fft length
window frame == fft
长度和
window frame < fft length
的效果是什么?为什么 FTT 独立于窗口,但 librosa 强制至少等于或更长的大小,但 Tensorflow 允许任何选择?

感谢您帮助我理解并可能为我的挑战提供一些实用的建议。

python tensorflow signal-processing fft librosa
1个回答
0
投票

设置

fft_size == window_length
- FFT 在窗口上执行,仅此而已。

设置

fft_size > window_length
- 在应用 FFT 之前,零被附加到窗口,以匹配所需的 fft_size。此操作不会添加任何更多信息,但提高了结果频谱的频率分辨率

设置

fft_size < window_length

好像不太好。它只是裁剪窗口以匹配 fft_size (根据 
rfft 的文档

© www.soinside.com 2019 - 2024. All rights reserved.