From 28ccfbfc51068a663a80764e14074df5edf2b5ba Mon Sep 17 00:00:00 2001
From: kongdeqiang <kongdeqiang960204@163.com>
Date: 星期五, 13 三月 2026 17:41:41 +0800
Subject: [PATCH] 提交

---
 funasr/tokenizer/sentencepiece_tokenizer.py |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/funasr/tokenizer/sentencepiece_tokenizer.py b/funasr/tokenizer/sentencepiece_tokenizer.py
index 05ca348..0b47a9f 100644
--- a/funasr/tokenizer/sentencepiece_tokenizer.py
+++ b/funasr/tokenizer/sentencepiece_tokenizer.py
@@ -8,11 +8,10 @@
 from funasr.tokenizer.abs_tokenizer import BaseTokenizer
 from funasr.register import tables
 
+
 @tables.register("tokenizer_classes", "SentencepiecesTokenizer")
 class SentencepiecesTokenizer(BaseTokenizer):
-    def __init__(self, bpemodel: Union[Path, str],
-                 **kwargs
-                 ):
+    def __init__(self, bpemodel: Union[Path, str], **kwargs):
         super().__init__(**kwargs)
         self.bpemodel = str(bpemodel)
         # NOTE(kamo):
@@ -21,6 +20,7 @@
         # "TypeError: can't pickle SwigPyObject objects",
         # when giving it as argument of "multiprocessing.Process()".
         self.sp = None
+        self._build_sentence_piece_processor()
 
     def __repr__(self):
         return f'{self.__class__.__name__}(model="{self.bpemodel}")'
@@ -39,10 +39,19 @@
         self._build_sentence_piece_processor()
         return self.sp.DecodePieces(list(tokens))
 
-    def encode(self, line: str) -> List[int]:
+    def encode(self, line: str, **kwargs) -> List[int]:
         self._build_sentence_piece_processor()
         return self.sp.EncodeAsIds(line)
 
-    def decode(self, line: List[int]):
+    def decode(self, line: List[int], **kwargs):
         self._build_sentence_piece_processor()
-        return self.sp.DecodeIds(line)
\ No newline at end of file
+        return self.sp.DecodeIds(line)
+
+    def get_vocab_size(self):
+        return self.sp.GetPieceSize()
+
+    def ids2tokens(self, *args, **kwargs):
+        return self.decode(*args, **kwargs)
+
+    def tokens2ids(self, *args, **kwargs):
+        return self.encode(*args, **kwargs)

--
Gitblit v1.9.1