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