我已经为一台机器学习实验录制了很多汽车行驶的音频片段。
这300个左右的剪辑的长度有所不同(长4-10秒),我想将它们剪辑成固定的3秒长度,但是手工操作会很麻烦。我想要汽车经过麦克风的那一刻(最大点),然后在那一刻之前和之后的1.5秒钟将其剪辑。
我知道如何执行此操作的方法是:
这是一个非常笼统的想法,我知道这是不正确的。我认为取一个窗口的平均值比仅找到最大值所在的位置并在前后前后取1.5更好,因为最大幅度可能是麦克风在剪辑中的某个点吹来的风,而不是实际上汽车驶过的声音。
这有意义吗?有什么办法可以做得更好?哪些工具/库可以帮助我获取振幅列表?
谢谢!
您可以使用wavefile
中的scipy.io
读取WAV文件作为数组。然后,可以将其放入pandas
数据帧以计算滚动平均值。使用idxmax
函数查找滚动平均值最大值的索引。然后可以将数据剪切到该索引周围,并将其写入新的WAV文件。