Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ def __init__(
phonemizer_backend="espeak",
**kwargs,
):
# Recover delimiters from V5 `*_token` auto-promotion; they aren't vocab tokens.
model_specific = kwargs.get("model_specific_special_tokens") or {}
if "word_delimiter_token" in model_specific:
word_delimiter_token = model_specific.pop("word_delimiter_token")
if "phone_delimiter_token" in model_specific:
phone_delimiter_token = model_specific.pop("phone_delimiter_token")
if not model_specific:
kwargs.pop("model_specific_special_tokens", None)

self._word_delimiter_token = word_delimiter_token
self._phone_delimiter_token = phone_delimiter_token
self.do_phonemize = do_phonemize
Expand All @@ -135,13 +144,13 @@ def __init__(
bos_token=bos_token,
eos_token=eos_token,
pad_token=pad_token,
word_delimiter_token=word_delimiter_token,
phone_delimiter_token=phone_delimiter_token,
do_phonemize=do_phonemize,
phonemizer_lang=phonemizer_lang,
phonemizer_backend=phonemizer_backend,
**kwargs,
)
self.init_kwargs["word_delimiter_token"] = word_delimiter_token
self.init_kwargs["phone_delimiter_token"] = phone_delimiter_token

@property
def vocab_size(self) -> int:
Expand Down Expand Up @@ -173,14 +182,15 @@ def init_backend(self, phonemizer_lang: str):
requires_backends(self, "phonemizer")
from phonemizer.backend import BACKENDS

self.backend = BACKENDS[self.phonemizer_backend](phonemizer_lang, language_switch="remove-flags")
self._phonemizer_backend = BACKENDS[self.phonemizer_backend](phonemizer_lang, language_switch="remove-flags")

def prepare_for_tokenization(
self,
text: str,
is_split_into_words: bool = False,
phonemizer_lang: str | None = None,
do_phonemize: bool | None = None,
**kwargs,
) -> tuple[str, dict[str, Any]]:
"""
Performs any necessary transformations before tokenization.
Expand Down Expand Up @@ -250,7 +260,7 @@ def phonemize(self, text: str, phonemizer_lang: str | None = None) -> str:
phonemizer_lang = self.phonemizer_lang

separator = Separator(phone=self.phone_delimiter_token, word=word_delimiter, syllable="")
phonemes = self.backend.phonemize(
phonemes = self._phonemizer_backend.phonemize(
[text],
separator=separator,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,11 @@ def get_clean_sequence(self, tokenizer, with_prefix_space=False, max_length=20,

@classmethod
def get_tokenizer(cls, pretrained_name=None, **kwargs):
kwargs.update(cls.special_tokens_map)
# Update with special_tokens_map first, then user kwargs take precedence
merged_kwargs = cls.special_tokens_map.copy()
merged_kwargs.update(kwargs)
pretrained_name = pretrained_name or cls.tmpdirname
return Wav2Vec2PhonemeCTCTokenizer.from_pretrained(pretrained_name, **kwargs)
return Wav2Vec2PhonemeCTCTokenizer.from_pretrained(pretrained_name, **merged_kwargs)

def test_tokenizer_add_new_tokens(self):
tokenizer = self.tokenizer_class.from_pretrained("facebook/wav2vec2-lv-60-espeak-cv-ft")
Expand Down
Loading