File size: 1,048 Bytes
70af406
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# Copyright (c) Meta Platforms, Inc. and affiliates. All Rights Reserved\n

from sam_audio.model.config import (
    ClapRankerConfig,
    EnsembleRankerConfig,
    ImageBindRankerConfig,
    JudgeRankerConfig,
)
from sam_audio.ranking.clap import ClapRanker
from sam_audio.ranking.imagebind import ImageBindRanker
from sam_audio.ranking.judge import JudgeRanker
from sam_audio.ranking.ranker import EnsembleRanker


def create_ranker(config):
    if isinstance(config, ImageBindRankerConfig):
        return ImageBindRanker(config)
    elif isinstance(config, ClapRankerConfig):
        return ClapRanker(config)
    elif isinstance(config, JudgeRankerConfig):
        return JudgeRanker(config)
    elif isinstance(config, EnsembleRankerConfig):
        ranker_cfgs, weights = zip(*config.rankers.values(), strict=False)
        return EnsembleRanker(
            rankers=[create_ranker(cfg) for cfg in ranker_cfgs],
            weights=weights,
        )
    else:
        assert config is None
        return None