首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解librosa.feature.spectral_contrast

理解librosa.feature.spectral_contrast
EN

Stack Overflow用户
提问于 2020-09-29 12:35:33
回答 1查看 222关注 0票数 0

我正在使用python,我正在尝试使用这个函数,但是我正在与它做斗争。

代码语言:javascript
复制
  def extract_feature_for_one_signal(signal):
    signal = signal.astype(float)
    mel = np.mean(librosa.feature.melspectrogram(signal, sr=SAMPLE_RATE, n_fft=N_FFT, hop_length=HOP_LENGTH).T, axis=0)
    mfccs = np.mean(librosa.feature.mfcc(y=signal, sr=SAMPLE_RATE, n_mfcc=40).T, axis=0)
    stft = np.abs(librosa.stft(signal))
    chroma = np.mean(librosa.feature.chroma_stft(S=stft, sr=SAMPLE_RATE).T, axis=0)
    **contrast = np.mean(librosa.feature.spectral_contrast(S=stft, sr=SAMPLE_RATE).T, axis=0)**
    tonnetz = np.mean(librosa.feature.tonnetz(y=librosa.effects.harmonic(signal), sr=SAMPLE_RATE).T, axis=0)
    average_distance = []
    for std in STD_NUMS:
        average_distance.append(average_distance_between_spikes(np.abs(signal), std, 320))
        average_distance.append(average_distance_between_spikes(signal, std, 320))
    return mfccs, chroma, mel, contrast, tonnetz, average_distance

这个项目就是在这里:

代码语言:javascript
复制
    contrast = np.mean(librosa.feature.spectral_contrast(S=stft, sr=SAMPLE_RATE).T, axis=0)

SAMPLE_RATE = 1000 (it must be 1000.....)

我能做些什么才能让它发挥作用?

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 06:41:28

你的尼奎斯特会比抽样率大。尝试将滤波器带的数目从默认的6修改为3或4。你也可以将fmin减少到50。

你选择的抽样率太小了。保持在44100左右,这是标准。那应该会很好的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64119762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档