【问题标题】:How to convert .wav file into an image for neural network?如何将 .wav 文件转换为神经网络的图像?
【发布时间】:2020-08-06 08:15:31
【问题描述】:

我正在尝试使用神经网络进行声音分类,并希望将 .wav 文件格式的 4 秒音频文件转换为图像。

我更喜欢使用 Librosa 库。另外我想知道如何读取这张图片并将其作为任何 CNN 模型的输入提供。

我确实在这里找到了类似的帖子,但它们并没有解决我的问题。

这是我迄今为止尝试过的:

y, sr = librosa.load('36902-3-2-0.wav')
S = librosa.feature.melspectrogram(y, sr, n_mels=128, fmax=8000)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max), fmax=8000)
plt.savefig('mel.png')

我得到这张图片:

当我尝试使用matplotlib.pyplotcv2 读取图像时,我得到的只是一个填充有255 值的数组:

array([[[255, 255, 255],
        [255, 255, 255],
        [255, 255, 255],
        ...,
        [255, 255, 255],
        [255, 255, 255],
        [255, 255, 255]],

       [[255, 255, 255],
        [255, 255, 255],
        [255, 255, 255],
        ...,
        [255, 255, 255],
        [255, 255, 255],
        [255, 255, 255]],

       [[255, 255, 255],
        [255, 255, 255],
        [255, 255, 255],
        ...,
        [255, 255, 255],
        [255, 255, 255],
        [255, 255, 255]],

       ...,

音频文件链接:https://drive.google.com/file/d/1BBgOxKy2-JMOHa90DCeFVLgoA7pEblVg/view?usp=sharing

【问题讨论】:

标签: python deep-learning librosa


【解决方案1】:

这很正常 - 您正在查看两侧的白色边框,而 (255,255,255) 是白色的。

尝试环顾坐标200,200

print(array[200:210, 200:210])

array([[[ 96,  87, 235],
        [ 96,  87, 235],
        [ 96,  87, 235],
        [ 95,  90, 237],
        [ 95,  90, 237],
        ...
        ...

或者看均值:

print(array.mean())

161.20984439300412

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2022-11-02
    • 2019-03-05
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多