MCPcopy Create free account
hub / github.com/FunAudioLLM/Fun-ASR / data_load_speech

Method data_load_speech

model.py:308–459  ·  view source on GitHub ↗
(self, contents: dict, tokenizer, frontend, meta_data={}, **kwargs)

Source from the content-addressed store, hash-verified

306 return contents
307
308 def data_load_speech(self, contents: dict, tokenizer, frontend, meta_data={}, **kwargs):
309 system = contents["system"]
310 user = contents["user"]
311 assistant = contents["assistant"]
312 pattern = re.compile(r"(<\|startofspeech\|>.*?<\|endofspeech\|>)")
313 do_think = True
314 sys_prompt = True
315 if "dataset_conf" in kwargs:
316 do_think = kwargs["dataset_conf"].get("do_think", True)
317 sys_prompt = kwargs["dataset_conf"].get("sys_prompt", True)
318
319 input_ids, labels, fbank, fbank_lens, fbank_mask, fbank_beg, fake_token_len = (
320 [],
321 [],
322 [],
323 [],
324 [],
325 [],
326 [],
327 )
328 input_source_ids = []
329 for i, (system_prompt, user_prompt, target_out) in enumerate(zip(system, user, assistant)):
330 if i >= kwargs.get("multiturn_num_max", 5):
331 break
332 if len(input_ids) > kwargs.get("max_token_length", 1500):
333 break
334 if isinstance(user_prompt, (list, tuple)):
335 user_prompt, audio = user_prompt
336 if i == 0:
337 if kwargs.get("infer_with_assistant_input", False):
338 source_input = f"<|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{user_prompt}"
339 if not sys_prompt:
340 source_input = f"<|im_start|>user\n{user_prompt}"
341 else:
342 source_input = f"<|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{user_prompt}<|im_end|>\n<|im_start|>assistant\n"
343 if not sys_prompt:
344 source_input = (
345 f"<|im_start|>user\n{user_prompt}<|im_end|>\n<|im_start|>assistant\n"
346 )
347 else:
348 if kwargs.get("infer_with_assistant_input", False):
349 source_input = f"<|im_start|>user\n{user_prompt}"
350 else:
351 source_input = (
352 f"<|im_start|>user\n{user_prompt}<|im_end|>\n<|im_start|>assistant\n"
353 )
354 if not do_think:
355 source_input += "<think>\n\n</think>\n\n"
356 if kwargs.get("prev_text", None) is not None:
357 source_input += kwargs["prev_text"]
358
359 splits = pattern.split(source_input)
360 source_ids = []
361 fbank_mask_i = []
362 fake_token_len_i = 0
363 fbank_beg_i = -1
364 speech, speech_lengths = [], []
365 for k, sub_str in enumerate(splits):

Callers 1

inference_prepareMethod · 0.95

Calls 1

encodeMethod · 0.80

Tested by

no test coverage detected