sample_id.ann.query module

class sample_id.ann.query.Cluster(matches)[source]

Bases: object

A group of Matches.

matches: List[sample_id.ann.query.Match]
class sample_id.ann.query.Match(keypoint, neighbors)[source]

Bases: object

A match between a Keypoint and it’s neighbors.

keypoint: sample_id.fingerprint.fingerprint.Keypoint
neighbors: Sequence[sample_id.ann.query.Neighbor]
class sample_id.ann.query.Neighbor(index, distance, meta)[source]

Bases: object

A nearest_neighbor queried from a Matcher.

distance: float
index: int
keypoint: sample_id.fingerprint.fingerprint.Keypoint
meta: dataclasses.InitVar
source_id: str
class sample_id.ann.query.Result(fp, clusters)[source]

Bases: object

as_dict(id_mapper=<function Result.<lambda>>)[source]
Return type

dict

clusters: dataclasses.InitVar
filter(sample_filter=<function Sample.basic_filter.<locals>.fn>)[source]

Filter keeping only samples that fit the filter function.

Return type

Result

filter_min_size_or_distance(min_size=2, min_distance=0.2)[source]

Filter keeping only samples with either a minimum size or distance.

Return type

Result

fp: dataclasses.InitVar
id: str
sources: Dict[str, Any]
class sample_id.ann.query.Sample(derivative_start, derivative_end, source_start, source_end, pitch_shift_factor, time_stretch_factor, confidence, size, min_distance, average_distance)[source]

Bases: object

as_dict()[source]
Return type

dict

average_distance: float
classmethod basic_filter(min_size=2, min_distance=0.2)[source]

Filter function keeping only samples with either a minimum size or distance.

Return type

Callable[[Sample], bool]

confidence: float
derivative_end: datetime.timedelta
derivative_start: datetime.timedelta
classmethod from_cluster(cluster, sr, hop_length)[source]
Return type

Sample

min_distance: float
pitch_shift_factor: Optional[float]
classmethod score(cluster)[source]
Return type

float

size: int
source_end: datetime.timedelta
source_start: datetime.timedelta
time_stretch_factor: Optional[float]
sample_id.ann.query.basic_cluster_filter(min_cluster_size=2, min_distance=0.2)[source]

Filter function keeping only clusters with either a minimum size or distance

Return type

Callable[[Cluster], bool]

sample_id.ann.query.cluster_matches(matches, cluster_dist)[source]
sample_id.ann.query.filter_matches(matches, abs_thresh=0.25, ratio_thresh=None, cluster_dist=20.0, cluster_size=2, match_orientation=True, ordered=False, cluster_filter=<function basic_cluster_filter.<locals>.fn>)[source]
Return type

List[Cluster]