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,
)
| 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() |
nothing calls this directly
no test coverage detected