From 493dda8f98662a546e908c08039898d0351782fd Mon Sep 17 00:00:00 2001
From: hnluo <haoneng.lhn@alibaba-inc.com>
Date: 星期四, 27 四月 2023 01:57:42 +0800
Subject: [PATCH] Update asr_inference_paraformer_streaming.py

---
 funasr/bin/asr_inference_paraformer_streaming.py |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/funasr/bin/asr_inference_paraformer_streaming.py b/funasr/bin/asr_inference_paraformer_streaming.py
index 939ffe9..c70baf0 100644
--- a/funasr/bin/asr_inference_paraformer_streaming.py
+++ b/funasr/bin/asr_inference_paraformer_streaming.py
@@ -202,10 +202,12 @@
         assert check_argument_types()
         results = []
         cache_en = cache["encoder"]
-        if speech.shape[1] < 16 * 60 and cache["is_final"]:
-            cache["last_chunk"] = True
-            feats = cache["feats"]
+        if speech.shape[1] < 16 * 60 and cache_en["is_final"]:
+            cache_en["tail_chunk"] = True
+            feats = cache_en["feats"]
             feats_len = torch.tensor([feats.shape[1]])
+            results = self.infer(feats, feats_len, cache)
+            return results
         else:
             if self.frontend is not None:
                 feats, feats_len = self.frontend.forward(speech, speech_lengths, cache_en["is_final"])
@@ -232,7 +234,7 @@
                         feats_len = torch.tensor([feats_chunk2.shape[1]])
                         results_chunk2 = self.infer(feats_chunk2, feats_len, cache)
 
-                        return results_chunk1 + results_chunk2
+                        return ["".join(results_chunk1 + results_chunk2)]
 
                 results = self.infer(feats, feats_len, cache)
 
@@ -466,7 +468,7 @@
 
         cache_en = {"start_idx": 0, "cif_hidden": torch.zeros((batch_size, 1, 320)),
                     "cif_alphas": torch.zeros((batch_size, 1)), "chunk_size": chunk_size, "last_chunk": False,
-                    "feats": torch.zeros((batch_size, chunk_size[0] + chunk_size[2], 560))}
+                    "feats": torch.zeros((batch_size, chunk_size[0] + chunk_size[2], 560)), "tail_chunk": False}
         cache["encoder"] = cache_en
 
         cache_de = {"decode_fsmn": None}
@@ -478,7 +480,7 @@
         if len(cache) > 0:
             cache_en = {"start_idx": 0, "cif_hidden": torch.zeros((batch_size, 1, 320)),
                         "cif_alphas": torch.zeros((batch_size, 1)), "chunk_size": chunk_size, "last_chunk": False,
-                        "feats": torch.zeros((batch_size, chunk_size[0] + chunk_size[2], 560))}
+                        "feats": torch.zeros((batch_size, chunk_size[0] + chunk_size[2], 560)), "tail_chunk": False}
             cache["encoder"] = cache_en
 
             cache_de = {"decode_fsmn": None}

--
Gitblit v1.9.1