File size: 7,811 Bytes
0d8b898
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
from typing import Dict
from transformers import AutoTokenizer


MULTI_LANG_TAGS = [
    "<|Chinese|>", "<|English|>", "<|Cantonese|>",
    "<|Japanese|>", "<|Korean|>", "<|Spanish|>",
    "<|French|>", "<|Russian|>", "<|Arabic|>",
    "<|Turkish|>", "<|Indonesian|>", "<|Portuguese|>",
    "<|Italian|>", "<|Dutch|>", "<|Vietnamese|>",
    "<|German|>", "<|Ukrainian|>", "<|Thai|>", 
    "<|Polish|>", "<|Romanian|>", "<|Greek|>",
    "<|Czech|>", "<|Finnish|>", "<|Hindi|>", 
]

MULTI_DIALECT_TAGS = [
    "<|ZH_Anhui|>", "<|ZH_Fujian|>", "<|ZH_Gansu|>", 
    "<|ZH_Guizhou|>", "<|ZH_Hebei|>", "<|ZH_Henan|>", 
    "<|ZH_Hubei|>", "<|ZH_Hunan|>", "<|ZH_Jiangxi|>", 
    "<|ZH_Liaoning|>", "<|ZH_Minnan|>", "<|ZH_Ningxia|>", 
    "<|ZH_Shaanxi|>", "<|ZH_Shandong|>", "<|ZH_Shanghai|>", 
    "<|ZH_Shanxi|>", "<|ZH_Sichuan|>", "<|ZH_Tianjin|>", 
    "<|ZH_Wenzhou|>", "<|ZH_Wu|>", "<|ZH_Yunnan|>", 
]


def load_text_tokenizer(tokenizer_dir:str):
    text_tokenizer = AutoTokenizer.from_pretrained(
        pretrained_model_name_or_path=tokenizer_dir
    )
    vocab: Dict = text_tokenizer.get_vocab()
    # Add special tokens
    special_tokens = [
        "<|sosp|>",
        "<|eosp|>",
        "<|empty|>",
        "<|Human|>",
        "<|SpeechLM|>",
        "<|sostm|>",
        "<|eostm|>",
        "<|sot|>",
        "<|eot|>",
        "<|TEXT_ONLY|>",
        "<|AUDIO_ONLY|>",
        "<|ASR|>",
        "<|TTS|>",
        "<|INTERLEAVE|>",
        "<|UNDERSTANDING|>",
        # Placeholders
        "<|placeholder_001|>",
        "<|placeholder_002|>",
        "<|placeholder_003|>",
        "<|placeholder_004|>",
        "<|placeholder_005|>",
        "<|placeholder_006|>",
        "<|placeholder_007|>",
        "<|placeholder_008|>",
        "<|placeholder_009|>",
        "<|placeholder_010|>",
        "<|placeholder_011|>",
        "<|placeholder_012|>",
        "<|placeholder_013|>",
        "<|placeholder_014|>",
        "<|placeholder_015|>",
        "<|placeholder_016|>",
        "<|placeholder_017|>",
        "<|placeholder_018|>",
        "<|placeholder_019|>",
        "<|placeholder_020|>",
        "<|placeholder_021|>",
        "<|placeholder_022|>",
        "<|placeholder_023|>",
        "<|placeholder_024|>",
        "<|placeholder_025|>",
        "<|placeholder_026|>",
        "<|placeholder_027|>",
        "<|placeholder_028|>",
        "<|placeholder_029|>",
        "<|placeholder_030|>",
        "<|placeholder_031|>",
        "<|placeholder_032|>",
        "<|placeholder_033|>",
        "<|placeholder_034|>",
        "<|placeholder_035|>",
        "<|placeholder_036|>",
        "<|placeholder_037|>",
        "<|placeholder_038|>",
        "<|placeholder_039|>",
        "<|placeholder_040|>",
        "<|placeholder_041|>",
        "<|placeholder_042|>",
        "<|placeholder_043|>",
        "<|placeholder_044|>",
        "<|placeholder_045|>",
        "<|placeholder_046|>",
        "<|placeholder_047|>",
        "<|placeholder_048|>",
        "<|placeholder_049|>",
        "<|placeholder_050|>",
        "<|placeholder_051|>",
        "<|placeholder_052|>",
        "<|placeholder_053|>",
        "<|placeholder_054|>",
        "<|placeholder_055|>",
        "<|placeholder_056|>",
        "<|placeholder_057|>",
        "<|placeholder_058|>",
        "<|placeholder_059|>",
        "<|placeholder_060|>",
        "<|placeholder_061|>",
        "<|placeholder_062|>",
        "<|placeholder_063|>",
        "<|placeholder_064|>",
        "<|placeholder_065|>",
        "<|placeholder_066|>",
        "<|placeholder_067|>",
        "<|placeholder_068|>",
        "<|placeholder_069|>",
        "<|placeholder_070|>",
        "<|placeholder_071|>",
        "<|placeholder_072|>",
        "<|placeholder_073|>",
        "<|placeholder_074|>",
        "<|placeholder_075|>",
        "<|placeholder_076|>",
        "<|placeholder_077|>",
        "<|placeholder_078|>",
        "<|placeholder_079|>",
        "<|placeholder_080|>",
        "<|placeholder_081|>",
        "<|placeholder_082|>",
        "<|placeholder_083|>",
        "<|placeholder_084|>",
        "<|placeholder_085|>",
        "<|placeholder_086|>",
        "<|placeholder_087|>",
        "<|placeholder_088|>",
        "<|placeholder_089|>",
        "<|placeholder_090|>",
        "<|placeholder_091|>",
        "<|placeholder_092|>",
        "<|placeholder_093|>",
        "<|placeholder_094|>",
        "<|placeholder_095|>",
        "<|placeholder_096|>",
        "<|placeholder_097|>",
        "<|placeholder_098|>",
        "<|placeholder_099|>",
        "<|placeholder_100|>",
        "<|placeholder_101|>",
        "<|placeholder_102|>",
        "<|placeholder_103|>",
        "<|placeholder_104|>",
        "<|placeholder_105|>",
        "<|placeholder_106|>",
        "<|placeholder_107|>",
        "<|placeholder_108|>",
        "<|placeholder_109|>",
        "<|placeholder_110|>",
        "<|placeholder_111|>",
        "<|placeholder_112|>",
        "<|placeholder_113|>",
        "<|placeholder_114|>",
        "<|placeholder_115|>",
        "<|placeholder_116|>",
        "<|placeholder_117|>",
        "<|placeholder_118|>",
        "<|placeholder_119|>",
        "<|placeholder_120|>",
        "<|placeholder_121|>",
        "<|placeholder_122|>",
        "<|placeholder_123|>",
        "<|placeholder_124|>",
        "<|placeholder_125|>",
        "<|placeholder_126|>",
        "<|placeholder_127|>",
        "<|placeholder_128|>",
        "<|placeholder_129|>",
        "<|placeholder_130|>",
        "<|placeholder_131|>",
        "<|placeholder_132|>",
        "<|placeholder_133|>",
        "<|placeholder_134|>",
        "<|placeholder_135|>",
        "<|placeholder_136|>",
        "<|placeholder_137|>",
        "<|placeholder_138|>",
        "<|placeholder_139|>",
        "<|placeholder_140|>",
        "<|placeholder_141|>",
        "<|placeholder_142|>",
        "<|placeholder_143|>",
        "<|placeholder_144|>",
        "<|placeholder_145|>",
        "<|placeholder_146|>",
        "<|placeholder_147|>",
        "<|placeholder_148|>",
        "<|placeholder_149|>",
        "<|placeholder_150|>",
        "<|placeholder_151|>",
        "<|placeholder_152|>",
        "<|placeholder_153|>",
        "<|placeholder_154|>",
        "<|placeholder_155|>",
        "<|placeholder_156|>",
        "<|placeholder_157|>",
        "<|placeholder_158|>",
        "<|placeholder_159|>",
        "<|placeholder_160|>",
        "<|placeholder_161|>",
        "<|placeholder_162|>",
        "<|placeholder_163|>",
        "<|placeholder_164|>",
        "<|placeholder_165|>",
        "<|placeholder_166|>",
        "<|placeholder_167|>",
        "<|placeholder_168|>",
        "<|placeholder_169|>",
        "<|placeholder_170|>",
        "<|placeholder_171|>",
        "<|placeholder_172|>",
        "<|placeholder_173|>",
        "<|placeholder_174|>",
        "<|placeholder_175|>",
        "<|placeholder_176|>",
        "<|placeholder_177|>",
        "<|placeholder_178|>",
        "<|placeholder_179|>",
        "<|placeholder_180|>",
        "<|placeholder_181|>",
        "<|placeholder_182|>",
        "<|placeholder_183|>",
        "<|placeholder_184|>",
        "<|placeholder_185|>",
        "<|placeholder_186|>",
        "<|placeholder_187|>",
        "<|placeholder_188|>",
        "<|placeholder_189|>",
        "<|placeholder_190|>",
        "<|placeholder_191|>",
        "<|placeholder_192|>",
        # Multi-lang tag
        *MULTI_LANG_TAGS,
        # Multi-dialect tag
        *MULTI_DIALECT_TAGS,
        # For SpeechEdit CoT
        "<|edit|>", "<|frame_patch|>", "<|end_edit|>",
    ]
    for token in special_tokens:
        if token not in vocab:
            text_tokenizer.add_tokens([token], special_tokens=True)
    return text_tokenizer