jianganghan
2024-02-29 f272eb4ef78e12a1ef4ae451b114f980a2682d51
Fix two bugs for blank voice (empty speech): (#1403)

First, raw text would always be present whatever param return_raw_text specified.
Second, empty text from punc model would cause error during sentence assembly if sentence_timestamp specified true.
1个文件已修改
14 ■■■■■ 已修改文件
funasr/auto/auto_model.py 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/auto/auto_model.py
@@ -392,7 +392,8 @@
            # step.3 compute punc model
            if self.punc_model is not None:
                if not len(result["text"]):
                    result['raw_text'] = ''
                    if return_raw_text:
                        result['raw_text'] = ''
                else:
                    self.punc_kwargs.update(cfg)
                    punc_res = self.inference(result["text"], model=self.punc_model, kwargs=self.punc_kwargs, **cfg)
@@ -434,10 +435,13 @@
                distribute_spk(sentence_list, sv_output)
                result['sentence_info'] = sentence_list
            elif kwargs.get("sentence_timestamp", False):
                sentence_list = timestamp_sentence(punc_res[0]['punc_array'],
                                                   result['timestamp'],
                                                   raw_text,
                                                   return_raw_text=return_raw_text)
                if not len(result['text']):
                    sentence_list = []
                else:
                    sentence_list = timestamp_sentence(punc_res[0]['punc_array'],
                                                       result['timestamp'],
                                                       raw_text,
                                                       return_raw_text=return_raw_text)
                result['sentence_info'] = sentence_list
            if "spk_embedding" in result: del result['spk_embedding']