Refactor: change execution location of pyopenjtalk.initialize()
Considering library design, this function with many side effects should not be executed in a library.
This commit is contained in:
@@ -42,6 +42,7 @@ from style_bert_vits2.constants import (
|
|||||||
)
|
)
|
||||||
from style_bert_vits2.logging import logger
|
from style_bert_vits2.logging import logger
|
||||||
from style_bert_vits2.nlp import bert_models
|
from style_bert_vits2.nlp import bert_models
|
||||||
|
from style_bert_vits2.nlp.japanese import pyopenjtalk_worker as pyopenjtalk
|
||||||
from style_bert_vits2.nlp.japanese.g2p_utils import g2kata_tone, kata_tone2phone_tone
|
from style_bert_vits2.nlp.japanese.g2p_utils import g2kata_tone, kata_tone2phone_tone
|
||||||
from style_bert_vits2.nlp.japanese.normalizer import normalize_text
|
from style_bert_vits2.nlp.japanese.normalizer import normalize_text
|
||||||
from style_bert_vits2.nlp.japanese.user_dict import (
|
from style_bert_vits2.nlp.japanese.user_dict import (
|
||||||
@@ -148,8 +149,11 @@ def save_last_download(latest_release):
|
|||||||
# ---フロントエンド部分に関する処理ここまで---
|
# ---フロントエンド部分に関する処理ここまで---
|
||||||
# 以降はAPIの設定
|
# 以降はAPIの設定
|
||||||
|
|
||||||
# 最初に pyopenjtalk の辞書を更新
|
# pyopenjtalk_worker を起動
|
||||||
## pyopenjtalk_worker の起動も同時に行われる
|
## pyopenjtalk_worker は TCP ソケットサーバーのため、ここで起動する
|
||||||
|
pyopenjtalk.initialize()
|
||||||
|
|
||||||
|
# pyopenjtalk の辞書を更新
|
||||||
update_dict()
|
update_dict()
|
||||||
|
|
||||||
# 事前に BERT モデル/トークナイザーをロードしておく
|
# 事前に BERT モデル/トークナイザーをロードしておく
|
||||||
|
|||||||
@@ -42,8 +42,7 @@ ln = config.server_config.language
|
|||||||
|
|
||||||
|
|
||||||
# pyopenjtalk_worker を起動
|
# pyopenjtalk_worker を起動
|
||||||
## Gradio はマルチスレッドだが、initialize() 内部で利用されている signal はマルチスレッドから設定できない
|
## pyopenjtalk_worker は TCP ソケットサーバーのため、ここで起動する
|
||||||
## さらに起動には若干時間がかかるため、事前に起動しておいた方が体験が良い
|
|
||||||
pyopenjtalk.initialize()
|
pyopenjtalk.initialize()
|
||||||
|
|
||||||
# 事前に BERT モデル/トークナイザーをロードしておく
|
# 事前に BERT モデル/トークナイザーをロードしておく
|
||||||
|
|||||||
@@ -112,10 +112,6 @@ def text_to_sep_kata(
|
|||||||
tuple[list[str], list[str]]: 分割された単語リストと、その読み(カタカナ or 記号1文字)のリスト
|
tuple[list[str], list[str]]: 分割された単語リストと、その読み(カタカナ or 記号1文字)のリスト
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# pyopenjtalk_worker を初期化
|
|
||||||
## 一度 worker を起動すれば、明示的に終了するかプロセス終了まで同一の worker に接続される
|
|
||||||
pyopenjtalk.initialize()
|
|
||||||
|
|
||||||
# parsed: OpenJTalkの解析結果
|
# parsed: OpenJTalkの解析結果
|
||||||
parsed = pyopenjtalk.run_frontend(norm_text)
|
parsed = pyopenjtalk.run_frontend(norm_text)
|
||||||
sep_text: list[str] = []
|
sep_text: list[str] = []
|
||||||
@@ -249,10 +245,6 @@ def __pyopenjtalk_g2p_prosody(text: str, drop_unvoiced_vowels: bool = True) -> l
|
|||||||
return -50
|
return -50
|
||||||
return int(match.group(1))
|
return int(match.group(1))
|
||||||
|
|
||||||
# pyopenjtalk_worker を初期化
|
|
||||||
## 一度 worker を起動すれば、明示的に終了するかプロセス終了まで同一の worker に接続される
|
|
||||||
pyopenjtalk.initialize()
|
|
||||||
|
|
||||||
labels = pyopenjtalk.make_label(pyopenjtalk.run_frontend(text))
|
labels = pyopenjtalk.make_label(pyopenjtalk.run_frontend(text))
|
||||||
N = len(labels)
|
N = len(labels)
|
||||||
|
|
||||||
|
|||||||
@@ -80,10 +80,6 @@ def update_dict(
|
|||||||
コンパイル済み辞書ファイルのパス
|
コンパイル済み辞書ファイルのパス
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# pyopenjtalk_worker を初期化
|
|
||||||
## 一度 worker を起動すれば、明示的に終了するかプロセス終了まで同一の worker に接続される
|
|
||||||
pyopenjtalk.initialize()
|
|
||||||
|
|
||||||
random_string = uuid4()
|
random_string = uuid4()
|
||||||
tmp_csv_path = compiled_dict_path.with_suffix(
|
tmp_csv_path = compiled_dict_path.with_suffix(
|
||||||
f".dict_csv-{random_string}.tmp"
|
f".dict_csv-{random_string}.tmp"
|
||||||
|
|||||||
@@ -27,8 +27,7 @@ from style_bert_vits2.tts_model import ModelHolder
|
|||||||
|
|
||||||
|
|
||||||
# pyopenjtalk_worker を起動
|
# pyopenjtalk_worker を起動
|
||||||
## Gradio はマルチスレッドだが、initialize() 内部で利用されている signal はマルチスレッドから設定できない
|
## pyopenjtalk_worker は TCP ソケットサーバーのため、ここで起動する
|
||||||
## さらに起動には若干時間がかかるため、事前に起動しておいた方が体験が良い
|
|
||||||
pyopenjtalk.initialize()
|
pyopenjtalk.initialize()
|
||||||
|
|
||||||
# 事前に BERT モデル/トークナイザーをロードしておく
|
# 事前に BERT モデル/トークナイザーをロードしておく
|
||||||
|
|||||||
Reference in New Issue
Block a user