解决音频波形图与均方根能量图时间轴对不齐的问题
解决方法
由于初学音频处理,今天在绘制音频波形图与均方根能量图时发现它俩的时间轴怎么都对不齐,如下图:

一番debug发现原来是我的均方根能量图的时间尺度出了问题
原来是这么写的time_scale=librosa.frames_to_time(frame_scale)
经过测试发现传入librosa.frames_to_time所需要的另外两个可选参数:采样率sr以及时移hop_length就能够与我的原始波形的时间对齐了。

librosa.frames_to_time的实现原理
那么librosa.frames_to_time是如何实现从帧的尺度到正确的时间尺度的呢?
定义帧索引i, 时移hop_length, 采样率sr, 帧i对应的起始时间\(t_s\)
根据公式可得
\[t_s = \frac{i * hop\_length}{sr}
\]
librosa.frame_to_time实际上也是实现的这个公式。

浙公网安备 33010602011771号