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

Method inference

funasr/models/campplus/model.py:158–195  ·  view source on GitHub ↗

Run speaker embedding extraction on audio input. Args: data_in: Audio input (file path, numpy array, or list). data_lengths: Not used. key (list): Sample identifiers. tokenizer: Not used. frontend: Not used. **kwargs: M

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

Source from the content-addressed store, hash-verified

156 return x
157
158 def inference(
159 self,
160 data_in,
161 data_lengths=None,
162 key: list = None,
163 tokenizer=None,
164 frontend=None,
165 **kwargs,
166 ):
167 """Run speaker embedding extraction on audio input.
168
169 Args:
170 data_in: Audio input (file path, numpy array, or list).
171 data_lengths: Not used.
172 key (list): Sample identifiers.
173 tokenizer: Not used.
174 frontend: Not used.
175 **kwargs: Must include 'device' (str) and optional 'fs' (int, default 16000).
176
177 Returns:
178 tuple: (results, meta_data) where results is
179 [{"spk_embedding": Tensor of shape (1, 192)}]
180 """
181 # extract fbank feats
182 meta_data = {}
183 time1 = time.perf_counter()
184 audio_sample_list = load_audio_text_image_video(
185 data_in, fs=16000, audio_fs=kwargs.get("fs", 16000), data_type="sound"
186 )
187 time2 = time.perf_counter()
188 meta_data["load_data"] = f"{time2 - time1:0.3f}"
189 speech, speech_lengths, speech_times = extract_feature(audio_sample_list)
190 speech = speech.to(device=kwargs["device"])
191 time3 = time.perf_counter()
192 meta_data["extract_feat"] = f"{time3 - time2:0.3f}"
193 meta_data["batch_data_time"] = np.array(speech_times).sum().item() / 16000.0
194 results = [{"spk_embedding": self.forward(speech.to(torch.float32))}]
195 return results, meta_data

Callers

nothing calls this directly

Calls 3

forwardMethod · 0.95
extract_featureFunction · 0.90

Tested by

no test coverage detected