From c1bbadf6c63e1410bf9174cc269b7478d27bbfb2 Mon Sep 17 00:00:00 2001 From: Darkacorn Date: Sat, 15 Feb 2025 07:37:59 +0000 Subject: [PATCH] phonemes support in input text --- zonos/conditioning.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/zonos/conditioning.py b/zonos/conditioning.py index eb2eac1..2d33910 100644 --- a/zonos/conditioning.py +++ b/zonos/conditioning.py @@ -200,13 +200,18 @@ def get_backend(language: str) -> "EspeakBackend": def phonemize(texts: list[str], languages: list[str]) -> list[str]: texts = clean(texts, languages) - batch_phonemes = [] for text, language in zip(texts, languages): - backend = get_backend(language) - phonemes = backend.phonemize([text], strip=True) - batch_phonemes.append(phonemes[0]) - + segments = re.split(r'(:phonemize/.*?/)', text) + phon_parts = [] + for seg in segments: + if seg.startswith(':phonemize/') and seg.endswith('/'): + phon_parts.append(seg[len(':phonemize/'):-1].replace(" ", "")) + elif seg: + backend = get_backend(language) + ph = backend.phonemize([seg], strip=True) + phon_parts.append(ph[0]) + batch_phonemes.append("".join(phon_parts)) return batch_phonemes