+
104
-

回答

通过librosa分析音乐获取节拍的时间轴数据,代码如下:

import librosa
import numpy as np

# 加载音频文件
y, sr = librosa.load('music.mp3')

# 检测节拍
tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)

# 将帧转换为时间
#beat_times = librosa.frames_to_time(beat_frames, sr=sr)
beat_times = np.round(librosa.frames_to_time(beat_frames, sr=sr), decimals=2)
print(f"Estimated tempo: {tempo}")
print("Beat times:")
print(beat_times)

# 检测音乐起始点
onset_env = librosa.onset.onset_strength(y=y, sr=sr)
onset_frames = librosa.onset.onset_detect(onset_envelope=onset_env, sr=sr)
onset_times = librosa.frames_to_time(onset_frames, sr=sr)

print("Onset times:")
print(onset_times)

网友回复

我知道答案,我要回答