【发布时间】:2019-08-06 21:48:36
【问题描述】:
我需要使用 Librosa 找到峰值的能量,以便检测每个小节的第一个节拍。
我正在使用 Librosa 检测点击轨道中的音频节拍。这运作良好,但我现在希望检测每个小节的第一个节拍。我认为最好的方法是检测每个节拍的能量或音高。
目前我正在将所有节拍记录到一个数组中。如何检测每个小节的第一个节拍?
def findPeaks(inputFile):
print(">>> Finding peaks...\n")
y, sr = librosa.load(inputFile)
onset_env = librosa.onset.onset_strength(
y=y, sr=sr, hop_length=512, aggregate=np.median
)
global inputTrackPeaks # array of peaks
inputTrackPeaks = librosa.util.peak_pick(onset_env, 3, 3, 3, 5, 0.5, 10)
inputTrackPeaks = librosa.frames_to_time(inputTrackPeaks, sr=sr)
inputTrackPeaks = inputTrackPeaks * 1000 # convert array to milliseconds
print("Peak positions (ms): \n", inputTrackPeaks)
【问题讨论】:
标签: python librosa audio-analysis