| | |
| | | try: |
| | | from funasr.utils.version_checker import check_for_update |
| | | |
| | | check_for_update() |
| | | check_for_update(disable=kwargs.get("disable_update", False)) |
| | | except: |
| | | pass |
| | | |
| | |
| | | end_vad = time.time() |
| | | |
| | | # FIX(gcf): concat the vad clips for sense vocie model for better aed |
| | | if kwargs.get("merge_vad", False): |
| | | if cfg.get("merge_vad", False): |
| | | for i in range(len(res)): |
| | | res[i]["value"] = merge_vad(res[i]["value"], kwargs.get("merge_length", 15000)) |
| | | res[i]["value"] = merge_vad( |
| | | res[i]["value"], kwargs.get("merge_length_s", 15) * 1000 |
| | | ) |
| | | |
| | | # step.2 compute asr model |
| | | model = self.model |
| | |
| | | |
| | | if len(sorted_data) > 0 and len(sorted_data[0]) > 0: |
| | | batch_size = max(batch_size, sorted_data[0][0][1] - sorted_data[0][0][0]) |
| | | |
| | | if kwargs["device"] == "cpu": |
| | | batch_size = 0 |
| | | |
| | | beg_idx = 0 |
| | | beg_asr_total = time.time() |
| | |
| | | sv_output = postprocess(all_segments, None, labels, spk_embedding.cpu()) |
| | | if self.spk_mode == "vad_segment": # recover sentence_list |
| | | sentence_list = [] |
| | | for res, vadsegment in zip(restored_data, vadsegments): |
| | | if "timestamp" not in res: |
| | | for rest, vadsegment in zip(restored_data, vadsegments): |
| | | if "timestamp" not in rest: |
| | | logging.error( |
| | | "Only 'iic/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch' \ |
| | | and 'iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch'\ |
| | |
| | | { |
| | | "start": vadsegment[0], |
| | | "end": vadsegment[1], |
| | | "sentence": res["text"], |
| | | "timestamp": res["timestamp"], |
| | | "sentence": rest["text"], |
| | | "timestamp": rest["timestamp"], |
| | | } |
| | | ) |
| | | elif self.spk_mode == "punc_segment": |