将音频文件转换为频谱图,然后将频谱图数据保存为txt fi

2024-06-17 13:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个CNN来重新识别鸟类的声音,我知道如何从wav音频中获取光谱图的图像并保存它,但是绘制46k图像太长了,有人告诉我把光谱图的数据保存到一个txt文件中,它可以用同样的方法训练人工智能,我做了一些搜索,但找不到任何方法来做到这一点,如果你们有什么建议我也会很感激的

代码如下:

def get_spectrogram(wav):
    D = librosa.stft(wav, n_fft=1080, hop_length=160,win_length=1080, window='hamming')
    spect, phase = librosa.magphase(D)
    return spect

for roots, directories,files in os.walk(path):
    for filename in files:
        if filename.endswith(".wav"):
            wav, sr = librosa.load(filename, sr=None)
            ipd.Audio(wav, rate=sr)
            log_spect = np.log(get_spectrogram(wav))
            plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='off')
            ax = plt.axes()
            ax.set_axis_off()
            plt.imshow(log_spect, aspect='auto', origin='hight')
            plot_name = f"{filename[:-4]}.png"
            plt.savefig(outputdir + "/" + plot_name, dpi=1000, bbox_inches='tight', transparent=True)

Tags: 方法图像logforgetplt光谱filename