MCPcopy Create free account
hub / github.com/modelscope/FunASR / inference

Method inference

funasr/models/uniasr/model.py:1022–1143  ·  view source on GitHub ↗

Run inference on input data. Args: data_in: Input data (audio samples, file paths, or text). data_lengths: Lengths of each input sample in the batch. key: Sample identifiers. tokenizer: Tokenizer instance for text e

(
        self,
        data_in,
        data_lengths=None,
        key: list = None,
        tokenizer=None,
        frontend=None,
        **kwargs,
    )

Source from the content-addressed store, hash-verified

1020 self.beam_search = beam_search
1021
1022 def inference(
1023 self,
1024 data_in,
1025 data_lengths=None,
1026 key: list = None,
1027 tokenizer=None,
1028 frontend=None,
1029 **kwargs,
1030 ):
1031
1032 """Run inference on input data.
1033
1034 Args:
1035 data_in: Input data (audio samples, file paths, or text).
1036 data_lengths: Lengths of each input sample in the batch.
1037 key: Sample identifiers.
1038 tokenizer: Tokenizer instance for text encoding/decoding.
1039 frontend: Audio frontend for feature extraction.
1040 **kwargs: Additional keyword arguments.
1041 """
1042 decoding_model = kwargs.get("decoding_model", "normal")
1043 token_num_relax = kwargs.get("token_num_relax", 5)
1044 if decoding_model == "fast":
1045 decoding_ind = 0
1046 decoding_mode = "model1"
1047 elif decoding_model == "offline":
1048 decoding_ind = 1
1049 decoding_mode = "model2"
1050 else:
1051 decoding_ind = 0
1052 decoding_mode = "model2"
1053 # init beamsearch
1054
1055 if self.beam_search is None:
1056 logging.info("enable beam_search")
1057 self.init_beam_search(decoding_mode=decoding_mode, **kwargs)
1058 self.nbest = kwargs.get("nbest", 1)
1059
1060 meta_data = {}
1061 if (
1062 isinstance(data_in, torch.Tensor) and kwargs.get("data_type", "sound") == "fbank"
1063 ): # fbank
1064 speech, speech_lengths = data_in, data_lengths
1065 if len(speech.shape) < 3:
1066 speech = speech[None, :, :]
1067 if speech_lengths is None:
1068 speech_lengths = speech.shape[1]
1069 else:
1070 # extract fbank feats
1071 time1 = time.perf_counter()
1072 audio_sample_list = load_audio_text_image_video(
1073 data_in,
1074 fs=frontend.fs,
1075 audio_fs=kwargs.get("fs", 16000),
1076 data_type=kwargs.get("data_type", "sound"),
1077 tokenizer=tokenizer,
1078 )
1079 time2 = time.perf_counter()

Callers

nothing calls this directly

Calls 10

init_beam_searchMethod · 0.95
encodeMethod · 0.95
calc_predictor_maskMethod · 0.95
encode2Method · 0.95
calc_predictor_mask2Method · 0.95
extract_fbankFunction · 0.90
beam_searchMethod · 0.80
ids2tokensMethod · 0.45
tokens2textMethod · 0.45

Tested by

no test coverage detected