plot_spectrograms.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:BirdAudioDetectionChallenge2016 作者: RSPB 项目源码 文件源码
def plot_spectrogram(data, rate, name, dir_label):
    window_size = 2 ** 10
    overlap = window_size // 8
    window = sig.tukey(M=window_size, alpha=0.25)

    freq, time, spectrogram = sig.spectrogram(data, fs=rate, window=window, nperseg=window_size, scaling='density', noverlap=overlap)
    spectrogram = np.log10(np.flipud(spectrogram))
    try:
        if spectrogram.shape[1] > 512:
            spec_padded = spectrogram[:512,:512]
        elif spectrogram.shape[1] < 512:
            spec_padded = np.pad(spectrogram, ((0, 0), (0, 512 - spectrogram.shape[1])), mode='median')[:512, :]
        else:
            spec_padded = spectrogram
    except Exception as e:
        print('ERROR!')
        print('Fault in: {}'.format(name))
        raise
    spec_padded = transform.downscale_local_mean(spec_padded, (2, 2))

    final_path = os.path.join(output_dir, dir_label, name + '.png')
    plt.imsave(final_path, spec_padded, cmap=plt.get_cmap('gray'))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号