def get_tempo_info(d): """ :param d: {'aud': aud, 'sr': sr, 'genre': self.get_genre(idx), 'bpm': self.get_gt_bpm(idx)} :return: """ # ground truth tempo = d['bpm'] # load file for librosa y, sr = d['aud'], d['sr'] onset_env = librosa.onset.onset_strength(y, sr=sr) # Static tempo tempo_pred_static = librosa.beat.tempo(onset_envelope=onset_env, sr=sr) # Dynamic tempo tempo_pred_dynamic = librosa.beat.tempo(onset_envelope=onset_env, sr=sr, aggregate=None) # Dynamic tempo distribution tempo_pred_dynamic_dist = get_tempo_distribu(tempo_pred_dynamic) tempo_cnt = tempo_pred_dynamic_dist[1] return tempo, tempo_pred_static, tempo_pred_dynamic, tempo_cnt
def get_tempo_info(file_number, d): # # get data # d = BallroomData() # wav name wav_name = d.file_name(file_number) # ground truth aaagt_bpm = d.get_gt_bpm(file_number) # load file for librosa y, sr = d[file_number] onset_env = librosa.onset.onset_strength(y, sr=sr) # Static tempo aaatempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr) # Dynamic tempo dtempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr, aggregate=None) # Dynamic tempo distribution zapple = get_tempo_distribu(dtempo) aaatempo_list = zapple[0] aaatempo_cnt = zapple[1] # # --- print info --- # print("filename = ", wav_name) # print("gt = ", aaagt_bpm) # print("static = ", aaatempo[0]) # print("----- guess ------ ------") # dis_lan = len(aaatempo_cnt) # for i in range(dis_lan): # print("%18.14f" % aaatempo_list[i], "%6d" % aaatempo_cnt[i]) # # print(str(aaatempo_list[i]), str(aaatempo_cnt[i])) # print("----- ----- ------ ------\n\n") # # --- ----- ---- --- return aaagt_bpm, aaatempo, aaatempo_list, aaatempo_cnt
def get_tempo_info(file_number): # get data d = BallroomData() # wav name wav_name = d.file_name(file_number) # ground truth aaagt_bpm = d.get_gt_bpm(file_number) # load file for librosa y, sr = d[file_number] onset_env = librosa.onset.onset_strength(y, sr=sr) # Static tempo aaatempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr) # Dynamic tempo dtempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr, aggregate=None) # Dynamic tempo distribution zapple = get_tempo_distribu(dtempo) aaatempo_list = zapple[0] aaatempo_cnt = zapple[1] return aaagt_bpm, aaatempo, aaatempo_list, aaatempo_cnt
total_time = aud.shape[0] / sr D = fourier_tempogram(aud) s = D.shape[1] # 2048 22050 f_tempo_list = [] for t in range(D.shape[1]): # get every most tempo and list them f_tempo_list.append( ff_get_two_tempo(D, t, total_time)[0][0]) # get t1 t2 by using the most exist tempo_list, tempo_cnt = get_tempo_distribu( f_tempo_list) t_1, t_2 = f_get_two_tempo_total(tempo_list, tempo_cnt) # TODO: remember gt gt = d.get_gt_bpm(file_number) print("gt =", gt, "t1 =", t_1, " t2 =", t_2) # calculat saliency ps = [] for ttt in range(D.shape[1]): # fet ft ft1, ft2 = get_two_f_t(D, ttt, total_time, t_1, t_2) # get p-score
wav_name = d.file_name(file_number) # ground truth aaagt_bpm = d.get_gt_bpm(file_number) # load file for librosa y, sr = d[file_number] onset_env = librosa.onset.onset_strength(y, sr=sr) # Static tempo aaatempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr) # Dynamic tempo dtempo = librosa.beat.tempo(onset_envelope=onset_env, sr=sr, aggregate=None) # Dynamic tempo distribution zapple = get_tempo_distribu(dtempo) aaatempo_list = zapple[0] aaatempo_cnt = zapple[1] # total t_zapple = mix_distribu(t_zapple, zapple) # --- print single file info --- # ------------- # ------ # -- # - # # # print("\n\nfilename = ", wav_name)