예제 #1
0
def estimate_beats(infile):
    """
    Return the estimated beat onsets in seconds for an audio file.
    """
    audio = standard.MonoLoader(filename=infile)()
    bt = standard.BeatTrackerMultiFeature()
    beats, confidence = bt(audio)
    return beats
예제 #2
0
def compute_beats(audio):
    """Computes the beats using Essentia."""
    logging.info("Computing Beats...")
    conf = 1.0
    beats, conf = ES.BeatTrackerMultiFeature()(audio)
    # beats = ES.BeatTrackerDegara()(audio)
    beats *= 44100 / msaf.Anal.sample_rate  # Essentia requires 44100 input

    # Double the beats if found beats are too little
    th = 0.9  # 1 would equal to at least 1 beat per second
    while beats.shape[0] / (audio.shape[0] / float(msaf.Anal.sample_rate)) < th \
            and beats.shape[0] > 2:
        beats = double_beats(beats)
    return beats, conf
예제 #3
0
def getMultiFeatureOnsets(XAudio, Fs, hopSize):
    """
    Call Essentia's implemtation of multi feature
    beat tracking
    :param XAudio: Numpy array of raw audio samples
    :param Fs: Sample rate
    :param hopSize: Hop size of each onset function value
    :returns (tempo, beats): Average tempo, numpy array
        of beat intervals in seconds
    """
    from essentia import Pool, array
    import essentia.standard as ess
    X = array(XAudio)
    b = ess.BeatTrackerMultiFeature()
    beats = b(X)
    print("Beat confidence: ", beats[1])
    beats = beats[0]
    tempo = 60 / np.mean(beats[1::] - beats[0:-1])
    beats = np.array(np.round(beats * Fs / hopSize), dtype=np.int64)
    return (tempo, beats)
예제 #4
0
def zapata14bpm(y):
    essentia_beat = estd.BeatTrackerMultiFeature()
    mean_tick_distance = np.mean(np.diff(essentia_beat(y)[0]))
    return 60 / mean_tick_distance
def essentia_beats(audio):
    beats, confidence = es.BeatTrackerMultiFeature()(audio)
    return beats
 def getBeats(self):
     BeatTracker = es.BeatTrackerMultiFeature()
     beats, _ = BeatTracker(self.audio)
     return beats
예제 #7
0
def compute_beats(audio):
    """Computes the beats using Essentia."""
    logging.info("Computing Beats...")
    ticks, conf = ES.BeatTrackerMultiFeature()(audio)
    return ticks, conf