From ae4dceecf03c643be770e3274a070078e45fc9c7 Mon Sep 17 00:00:00 2001
From: shixian.shi <shixian.shi@alibaba-inc.com>
Date: 星期二, 23 一月 2024 11:34:03 +0800
Subject: [PATCH] bug fix for punc and umap

---
 funasr/models/ct_transformer/model.py     |    4 ++--
 setup.py                                  |    2 +-
 funasr/models/campplus/cluster_backend.py |    2 ++
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/funasr/models/campplus/cluster_backend.py b/funasr/models/campplus/cluster_backend.py
index 3bac0a0..e33a14d 100644
--- a/funasr/models/campplus/cluster_backend.py
+++ b/funasr/models/campplus/cluster_backend.py
@@ -119,6 +119,7 @@
         self.metric = metric
 
     def __call__(self, X):
+        from umap.umap_ import UMAP
         umap_X = umap.UMAP(
             n_neighbors=self.n_neighbors,
             min_dist=0.0,
@@ -156,6 +157,7 @@
         if X.shape[0] < 20:
             return np.zeros(X.shape[0], dtype='int')
         if X.shape[0] < 2048 or k is not None:
+            # unexpected corner case
             labels = self.spectral_cluster(X, k)
         else:
             labels = self.umap_hdbscan_cluster(X)
diff --git a/funasr/models/ct_transformer/model.py b/funasr/models/ct_transformer/model.py
index 330d7e5..1e53aa3 100644
--- a/funasr/models/ct_transformer/model.py
+++ b/funasr/models/ct_transformer/model.py
@@ -336,10 +336,11 @@
                 elif new_mini_sentence[-1] != "銆�" and new_mini_sentence[-1] != "锛�" and len(new_mini_sentence[-1].encode())!=1:
                     new_mini_sentence_out = new_mini_sentence + "銆�"
                     new_mini_sentence_punc_out = new_mini_sentence_punc[:-1] + [self.sentence_end_id]
+                    if len(punctuations): punctuations[-1] = 2
                 elif new_mini_sentence[-1] != "." and new_mini_sentence[-1] != "?" and len(new_mini_sentence[-1].encode())==1:
                     new_mini_sentence_out = new_mini_sentence + "."
                     new_mini_sentence_punc_out = new_mini_sentence_punc[:-1] + [self.sentence_end_id]
-                    
+                    if len(punctuations): punctuations[-1] = 2
             # keep a punctuations array for punc segment
             if punc_array is None:
                 punc_array = punctuations
@@ -347,6 +348,5 @@
                 punc_array = torch.cat([punc_array, punctuations], dim=0)
         result_i = {"key": key[0], "text": new_mini_sentence_out, "punc_array": punc_array}
         results.append(result_i)
-    
         return results, meta_data
 
diff --git a/setup.py b/setup.py
index f4439b0..561dea2 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@
         # "protobuf",
         "tqdm",
         "hdbscan",
-        "umap",
+        "umap_learn",
         "jaconv",
         "hydra-core>=1.3.2",
     ],

--
Gitblit v1.9.1