From 9671d17d3162ed61e2d4904c81e3cfde8226eb23 Mon Sep 17 00:00:00 2001 From: litagin02 Date: Sat, 6 Jan 2024 08:32:08 +0900 Subject: [PATCH] =?UTF-8?q?Fix=20=E3=82=83=20=E3=82=85=20=E3=82=87=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- text/japanese.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/text/japanese.py b/text/japanese.py index af49eac..69301da 100644 --- a/text/japanese.py +++ b/text/japanese.py @@ -20,6 +20,7 @@ def hiragana2p(text: str) -> str: - avoid converting `o u` to `o o` (because the input is already actual `yomi`). - avoid using `N` for `ん` (for compatibility) - use `v` for `ゔ` related text. + - add bare `ゃ` `ゅ` `ょ` to `y a` `y u` `y o` (for compatibility). """ # 3文字以上からなる変換規則 text = text.replace("う゛ぁ", " v a") @@ -321,6 +322,11 @@ def hiragana2p(text: str) -> str: text = text.replace("ゎ", " w a") text = text.replace("ぉ", " o") + # ここまでに処理されていないゅ等もそのまま大文字扱い(追加) + text = text.replace("ゃ", " y a") + text = text.replace("ゅ", " y u") + text = text.replace("ょ", " y o") + # 長音の処理 # for (pattern, replace_str) in JULIUS_LONG_VOWEL: # text = pattern.sub(replace_str, text) @@ -409,6 +415,8 @@ def text2sep_kata(text: str): else: res.append(word) sep.append(word) + logger.debug(f"Text2sep_kata: {text} -> {res}") + logger.debug(f"get_accent: {parsed}") return sep, res, get_accent(parsed) @@ -676,6 +684,9 @@ def rearrange_tones(tones, phones): def g2p(norm_text): sep_text, sep_kata, acc = text2sep_kata(norm_text) + logger.debug(f"Sep_text: {sep_text}") + logger.debug(f"Sep_kata: {sep_kata}") + logger.debug(f"Acc: {acc}") sep_tokenized = [] for i in sep_text: if i not in punctuation: