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