Esempio n. 1
0
File: Q4.py Progetto: exeex/mir-hw2
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
Esempio n. 2
0
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
Esempio n. 3
0
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
Esempio n. 4
0
                        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
Esempio n. 5
0
                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)