def find_matches(track, model):
    track_id = str(track)
    # Extract keypoints
    fp = fingerprint.from_file(
        track.path, model.settings['sr'], track_id, model.settings
    )

    # Find (approximate) nearest neighbors
    distances, indices = ann.find_neighbors(
        model.matcher,
        fp.descriptors,
        algorithm=model.settings['algorithm'],
        k=2
    )

    # Build match  objects
    logger.info('Building match objects')
    matches = []
    for i, distance in enumerate(distances):
        matches.append(Match(
            fp.keypoints[i],
            model.keypoints[indices[i][0]],
            distance[0],
            distance[1]
        ))
    return matches, fp.spectrogram, fp.keypoints
Esempio n. 2
0
def find_matches(track, model):
    track_id = str(track)
    # Extract keypoints
    fp = fingerprint.from_file(track.path, model.settings['sr'], track_id,
                               model.settings)

    # Find (approximate) nearest neighbors
    distances, indices = ann.find_neighbors(
        model.matcher,
        fp.descriptors,
        algorithm=model.settings['algorithm'],
        k=20)

    # Build match  objects
    logger.info('Building match objects')
    matches = []
    for i, distance in enumerate(distances):
        neighbors = [
            Neighbor(model.keypoints[index], dist)
            for index, dist in zip(indices[i], distance)
        ]
        matches.append(Match(
            fp.keypoints[i],
            neighbors,
        ))
    return matches, fp.spectrogram, fp.keypoints
Esempio n. 3
0
def find_matches(audio_path, model):
    # Extract keypoints
    kp, desc, img = sift_file(
        audio_path,
        model.settings['hop_length'],
        model.settings['octave_bins'],
        model.settings['n_octaves'],
        model.settings['fmin'],
        sr=model.settings['sr'],
        **model.settings['kwargs']
    )

    # Find (approximate) nearest neighbors
    distances, indices = ann.find_neighbors(model.clf, desc, k=2)

    # Build match  objects
    logger.info('Building match objects')
    matches = []
    for i, distance in enumerate(distances):
        matches.append(Match(kp[i], model.keypoints[indices[i][0]], distance[0], distance[1]))
    return matches, img
Esempio n. 4
0
def find_matches(audio_path, model):
    # Extract keypoints
    kp, desc, img = sift_file(audio_path,
                              model.settings["hop_length"],
                              model.settings["octave_bins"],
                              model.settings["n_octaves"],
                              model.settings["fmin"],
                              sr=model.settings["sr"],
                              **model.settings["kwargs"])

    # Find (approximate) nearest neighbors
    distances, indices = ann.find_neighbors(model.clf, desc, k=2)

    # Build match  objects
    logger.info("Building match objects")
    matches = []
    for i, distance in enumerate(distances):
        matches.append(
            Match(kp[i], model.keypoints[indices[i][0]], distance[0],
                  distance[1]))
    return matches, img