From d0d8684b964f06ab81279fa11a3725aaff01161c Mon Sep 17 00:00:00 2001
From: haoneng.lhn <haoneng.lhn@alibaba-inc.com>
Date: 星期三, 29 三月 2023 11:49:06 +0800
Subject: [PATCH] update
---
funasr/models/predictor/cif.py | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/funasr/models/predictor/cif.py b/funasr/models/predictor/cif.py
index 74f3e68..deff6e4 100644
--- a/funasr/models/predictor/cif.py
+++ b/funasr/models/predictor/cif.py
@@ -200,6 +200,7 @@
return acoustic_embeds, token_num, alphas, cif_peak
def forward_chunk(self, hidden, cache=None):
+ b, t, d = hidden.size()
h = hidden
context = h.transpose(1, 2)
queries = self.pad(context)
@@ -220,10 +221,19 @@
alphas = alphas * mask_chunk_predictor
if cache is not None:
+ if cache["is_final"]:
+ alphas[:, cache["stride"] + cache["pad_left"] - 1] += 0.45
if cache["cif_hidden"] is not None:
hidden = torch.cat((cache["cif_hidden"], hidden), 1)
if cache["cif_alphas"] is not None:
alphas = torch.cat((cache["cif_alphas"], alphas), -1)
+
+ #if cache["is_final"]:
+ # tail_threshold = torch.tensor([self.tail_threshold], dtype=alphas.dtype).to(alphas.device)
+ # tail_threshold = torch.reshape(tail_threshold, (1, 1))
+ # alphas = torch.cat([alphas, tail_threshold], dim=1)
+ # zeros_hidden = torch.zeros((b, 1, d), dtype=hidden.dtype).to(hidden.device)
+ # hidden = torch.cat([hidden, zeros_hidden], dim=1)
token_num = alphas.sum(-1)
acoustic_embeds, cif_peak = cif(hidden, alphas, self.threshold)
@@ -240,8 +250,9 @@
pre_alphas_length = cache["cif_alphas"].size(-1)
mask_chunk_peak_predictor[:, :pre_alphas_length] = 1.0
mask_chunk_peak_predictor[:, pre_alphas_length + cache["pad_left"]:pre_alphas_length + cache["stride"] + cache["pad_left"]] = 1.0
+ #if cache["is_final"]:
+ # mask_chunk_peak_predictor[:, -1] = 1.0
-
if mask_chunk_peak_predictor is not None:
cif_peak = cif_peak * mask_chunk_peak_predictor.squeeze(-1)
--
Gitblit v1.9.1