firered-tts3 / fireredtts3 /utils /text_tokenizer.py
multimodalart's picture
multimodalart HF Staff
FireRedTTS3 demo: cloning, voice design, speech editing
0d8b898 verified
Raw
History Blame Contribute Delete
7.81 kB
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