音频分类-数据集:ESC-50【每个音频长度为5 秒,5个大类,50 个小类(每个小类 40 个样本),共 2000个样本】

小咪咪 2023-09-28 15:14 69阅读 0赞

该数据集由 5 秒长的记录组成,这些记录被组织成 50 个语义类(每个类 40 个示例),松散地排列成 5 个主要类别,
ESC-50 数据集是 2000 个环境录音的标记集合,适用于环境声音分类的基准测试方法。

GitHub下载地址:(https://github.com/karolpiczak/ESC-50)
esc-50-aug

在这里插入图片描述
对应的cvs文件有声音的描述:
在这里插入图片描述

  1. # 例如我们播放狗叫声
  2. import IPython.display as display
  3. display.Audio('../study/sound/ESC-50/audio/1-100032-A-0.wav')
  4. # 声音可视化代码, 使用pywave模块,读取声音文件,一组将声音文件一波形显示
  5. import wave
  6. import struct
  7. import numpy as np
  8. import matplotlib.pyplot as plt
  9. # 读取wav文件
  10. filename = '../study/sound/ESC-50/audio/1-100032-A-0.wav'
  11. wavefile = wave.open(filename, 'r') # open for writing
  12. # 读取wav文件的四种信息的函数。期中numframes表示一共读取了几个frames。
  13. nchannels = wavefile.getnchannels()
  14. sample_width = wavefile.getsampwidth()
  15. framerate = wavefile.getframerate()
  16. numframes = wavefile.getnframes()
  17. print("channel", nchannels)
  18. print("sample_width", sample_width)
  19. print("framerate", framerate)
  20. print("numframes", numframes)
  21. # 建一个y的数列,用来保存后面读的每个frame的amplitude。
  22. y = np.zeros(numframes)
  23. # for循环,readframe(1)每次读一个frame,取其前两位,是左声道的信息。右声道就是后两位啦。
  24. # unpack是struct里的一个函数,用法详见http://docs.python.org/library/struct.html。简单说来就是把#packed的string转换成原来的数据,无论是什么样的数据都返回一个tuple。这里返回的是长度为一的一个
  25. # tuple,所以我们取它的第零位。
  26. for i in range(numframes):
  27. val = wavefile.readframes(1)
  28. left = val[0:2]
  29. # right = val[2:4]
  30. v = struct.unpack('h', left)[0]
  31. y[i] = v
  32. # framerate就是声音的采用率,文件初读取的值。
  33. Fs = framerate
  34. time = np.arange(0, numframes) * (1.0 / framerate)
  35. # 显示时域图(波形图)
  36. plt.subplot(211)
  37. plt.plot(time, y)
  38. # 显示频域图(频谱图)
  39. plt.subplot(212)
  40. plt.specgram(y, NFFT=1024, Fs=Fs, noverlap=900)
  41. plt.show()

在这里插入图片描述




参考资料:
声音之旅 ——- 声音数据集 ESC-50
ESC-50数据集的分析(1)

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读

    相关 50超实用的生活点子

    ✿1 、买回来的土豆经常不注意就发芽了,下次可以在土豆堆里放个苹果试试。 ✿2、爱吃香蕉的朋友,最担心的就是囤的香蕉放不久,很快就变色坏掉了,不过可以试试用保鲜膜包住香蕉的根

    相关 50人脸识别

    自从谷歌眼镜被推出以来,围绕人脸识别,出现了很多争议。我们相信,不管是不是通过智能眼镜,人脸识别将在人与人交往甚至人与物交互中开辟无数种可能性。 为了帮助研究过程中探索人脸识