Spaces:
Sleeping
Sleeping
import os, json, sys | |
sys.path.append(".") | |
from uuid import uuid4 | |
from typing import List, Dict, Literal, Optional, Any, Union | |
import urllib.parse | |
import hashlib | |
from Synthesizers.base import Base_TTS_Task, ParamItem, init_params_config | |
global global_based_synthesizer | |
global_based_synthesizer = None | |
def set_based_synthesizer(based_synthesizer:str): | |
global global_based_synthesizer | |
global_based_synthesizer = based_synthesizer | |
def get_params_config(based_synthesizer:str= None): | |
assert based_synthesizer is not None, "based_synthesizer is not set, please init the remote synthesizer first." | |
try: | |
with open(os.path.join(os.path.dirname(__file__), "configs", "params_config.json"), "r", encoding="utf-8") as f: | |
res:dict = json.load(f) | |
with open(os.path.join("Synthesizers", based_synthesizer ,"configs", "params_config.json"), "r", encoding="utf-8") as f: | |
res.update(json.load(f)) | |
return init_params_config(res) | |
except: | |
raise FileNotFoundError("params_config.json not found or invalid.") | |
params_config = None | |
def get_ui_config(based_synthesizer:str= None)->Dict[str, Any]: | |
if based_synthesizer is None: | |
based_synthesizer = global_based_synthesizer | |
assert based_synthesizer is not None, "based_synthesizer is not set, please init the remote synthesizer first." | |
remote_ui_config_path = os.path.join(os.path.dirname(__file__), "configs", "ui_config.json") | |
based_ui_config_path = os.path.join("Synthesizers", based_synthesizer ,"configs", "ui_config.json") | |
ui_config :Dict[str, Any] = {} | |
try: | |
with open(remote_ui_config_path, "r", encoding="utf-8") as f: | |
ui_config.update(json.load(f)) | |
with open(based_ui_config_path, "r", encoding="utf-8") as f: | |
ui_config.update(json.load(f)) | |
return ui_config | |
except: | |
raise FileNotFoundError("ui_config.json not found or invalid.") | |
from pydantic import BaseModel, Field, model_validator | |
from copy import deepcopy | |
class Remote_TTS_Task(Base_TTS_Task): | |
is_remote: Optional[bool] = True | |
data : dict = {} | |
class Config: | |
extra = "ignore" | |
def __init__(self, based_synthesizer:str=None, **data): | |
global params_config | |
based_synthesizer = based_synthesizer if based_synthesizer is not None else global_based_synthesizer | |
assert based_synthesizer is not None, "based_synthesizer is not set, please init the remote synthesizer first." | |
if params_config is None: | |
params_config = get_params_config(based_synthesizer) | |
copyed_data = deepcopy(data) | |
copyed_data.setdefault("params_config",params_config) | |
super().__init__(**copyed_data) | |
self.data = data | |
def md5(self): | |
m = hashlib.md5() | |
m.update(self.data.__str__().encode()) | |
return m.hexdigest() | |
def __str__(self): | |
content = super().__str__() | |
return f"{content}" | |