👍️[Update] Config : config.jsonが異常値だった場合のセーフティ機能を追加

This commit is contained in:
misyaguziya
2024-12-02 18:19:36 +09:00
parent f0bf6aee8d
commit becff72cfa
3 changed files with 260 additions and 293 deletions

View File

@@ -4,8 +4,12 @@ from os import path as os_path, makedirs as os_makedirs
from json import load as json_load
from json import dump as json_dump
import threading
import torch
from device_manager import device_manager
from models.translation.translation_languages import translation_lang
from models.translation.translation_utils import ctranslate2_weights
from models.transcription.transcription_languages import transcription_lang
from models.transcription.transcription_whisper import _MODELS as whisper_models
from utils import isUniqueStrings
json_serializable_vars = {}
@@ -78,29 +82,29 @@ class Config:
def DEEPL_AUTH_KEY_PAGE_URL(self):
return self._DEEPL_AUTH_KEY_PAGE_URL
@property
def TRANSPARENCY_RANGE(self):
return self._TRANSPARENCY_RANGE
# @property
# def TRANSPARENCY_RANGE(self):
# return self._TRANSPARENCY_RANGE
@property
def UI_SCALING_RANGE(self):
return self._UI_SCALING_RANGE
# @property
# def UI_SCALING_RANGE(self):
# return self._UI_SCALING_RANGE
@property
def TEXTBOX_UI_SCALING_RANGE(self):
return self._TEXTBOX_UI_SCALING_RANGE
# @property
# def TEXTBOX_UI_SCALING_RANGE(self):
# return self._TEXTBOX_UI_SCALING_RANGE
@property
def MESSAGE_BOX_RATIO_RANGE(self):
return self._MESSAGE_BOX_RATIO_RANGE
# @property
# def MESSAGE_BOX_RATIO_RANGE(self):
# return self._MESSAGE_BOX_RATIO_RANGE
@property
def MAX_MIC_THRESHOLD(self):
return self._MAX_MIC_THRESHOLD
# @property
# def MAX_MIC_THRESHOLD(self):
# return self._MAX_MIC_THRESHOLD
@property
def MAX_SPEAKER_THRESHOLD(self):
return self._MAX_SPEAKER_THRESHOLD
# @property
# def MAX_SPEAKER_THRESHOLD(self):
# return self._MAX_SPEAKER_THRESHOLD
@property
def WATCHDOG_TIMEOUT(self):
@@ -110,6 +114,42 @@ class Config:
def WATCHDOG_INTERVAL(self):
return self._WATCHDOG_INTERVAL
@property
def SELECTABLE_TAB_NO_LIST(self):
return self._SELECTABLE_TAB_NO_LIST
@property
def SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST(self):
return self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST
@property
def SELECTABLE_WHISPER_WEIGHT_TYPE_LIST(self):
return self._SELECTABLE_WHISPER_WEIGHT_TYPE_LIST
@property
def SELECTABLE_TRANSLATION_ENGINE_LIST(self):
return self._SELECTABLE_TRANSLATION_ENGINE_LIST
@property
def SELECTABLE_TRANSCRIPTION_ENGINE_LIST(self):
return self._SELECTABLE_TRANSCRIPTION_ENGINE_LIST
@property
def SELECTABLE_UI_LANGUAGE_LIST(self):
return self._SELECTABLE_UI_LANGUAGE_LIST
@property
def COMPUTE_MODE(self):
return self._COMPUTE_MODE
@property
def SELECTABLE_COMPUTE_DEVICE_LIST(self):
return self._SELECTABLE_COMPUTE_DEVICE_LIST
@property
def SEND_MESSAGE_BUTTON_TYPE_LIST(self):
return self._SEND_MESSAGE_BUTTON_TYPE_LIST
# Read Write
@property
def ENABLE_TRANSLATION(self):
@@ -193,8 +233,9 @@ class Config:
@SELECTED_TAB_NO.setter
def SELECTED_TAB_NO(self, value):
if isinstance(value, str):
self._SELECTED_TAB_NO = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_TAB_NO_LIST:
self._SELECTED_TAB_NO = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSLATION_ENGINES')
@@ -204,6 +245,10 @@ class Config:
@SELECTED_TRANSLATION_ENGINES.setter
def SELECTED_TRANSLATION_ENGINES(self, value):
if isinstance(value, dict):
old_value = self.SELECTED_TRANSLATION_ENGINES
for k, v in value.items():
if v not in self.SELECTABLE_TRANSLATION_ENGINE_LIST:
value[k] = old_value[k]
self._SELECTED_TRANSLATION_ENGINES = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@@ -214,19 +259,16 @@ class Config:
@SELECTED_YOUR_LANGUAGES.setter
def SELECTED_YOUR_LANGUAGES(self, value):
try:
if isinstance(value, dict):
value_old = self.SELECTED_YOUR_LANGUAGES
for k0, v0 in value.items():
for k1, v1 in v0.items():
language = v1["language"]
country = v1["country"]
if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()):
value[k0][k1] = value_old[k0][k1]
self._SELECTED_YOUR_LANGUAGES = value
except Exception:
pass
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if isinstance(value, dict):
value_old = self.SELECTED_YOUR_LANGUAGES
for k0, v0 in value.items():
for k1, v1 in v0.items():
language = v1["language"]
country = v1["country"]
if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()):
value[k0][k1] = value_old[k0][k1]
self._SELECTED_YOUR_LANGUAGES = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TARGET_LANGUAGES')
@@ -235,19 +277,16 @@ class Config:
@SELECTED_TARGET_LANGUAGES.setter
def SELECTED_TARGET_LANGUAGES(self, value):
try:
if isinstance(value, dict):
value_old = self.SELECTED_TARGET_LANGUAGES
for k0, v0 in value.items():
for k1, v1 in v0.items():
language = v1["language"]
country = v1["country"]
if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()):
value[k0][k1] = value_old[k0][k1]
self._SELECTED_TARGET_LANGUAGES = value
except Exception:
pass
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if isinstance(value, dict):
value_old = self.SELECTED_TARGET_LANGUAGES
for k0, v0 in value.items():
for k1, v1 in v0.items():
language = v1["language"]
country = v1["country"]
if language not in list(transcription_lang.keys()) or country not in list(transcription_lang[language].keys()):
value[k0][k1] = value_old[k0][k1]
self._SELECTED_TARGET_LANGUAGES = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSCRIPTION_ENGINE')
@@ -257,8 +296,9 @@ class Config:
@SELECTED_TRANSCRIPTION_ENGINE.setter
def SELECTED_TRANSCRIPTION_ENGINE(self, value):
if isinstance(value, str):
self._SELECTED_TRANSCRIPTION_ENGINE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_TRANSCRIPTION_ENGINE_LIST:
self._SELECTED_TRANSCRIPTION_ENGINE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MULTI_LANGUAGE_TRANSLATION')
@@ -368,19 +408,9 @@ class Config:
@UI_LANGUAGE.setter
def UI_LANGUAGE(self, value):
if isinstance(value, str):
self._UI_LANGUAGE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RESTORE_MAIN_WINDOW_GEOMETRY')
def RESTORE_MAIN_WINDOW_GEOMETRY(self):
return self._RESTORE_MAIN_WINDOW_GEOMETRY
@RESTORE_MAIN_WINDOW_GEOMETRY.setter
def RESTORE_MAIN_WINDOW_GEOMETRY(self, value):
if isinstance(value, bool):
self._RESTORE_MAIN_WINDOW_GEOMETRY = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_UI_LANGUAGE_LIST:
self._UI_LANGUAGE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('MAIN_WINDOW_GEOMETRY')
@@ -669,8 +699,9 @@ class Config:
@SELECTED_TRANSLATION_COMPUTE_DEVICE.setter
def SELECTED_TRANSLATION_COMPUTE_DEVICE(self, value):
if isinstance(value, dict):
self._SELECTED_TRANSLATION_COMPUTE_DEVICE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_COMPUTE_DEVICE_LIST:
self._SELECTED_TRANSLATION_COMPUTE_DEVICE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SELECTED_TRANSCRIPTION_COMPUTE_DEVICE')
@@ -680,8 +711,9 @@ class Config:
@SELECTED_TRANSCRIPTION_COMPUTE_DEVICE.setter
def SELECTED_TRANSCRIPTION_COMPUTE_DEVICE(self, value):
if isinstance(value, dict):
self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_COMPUTE_DEVICE_LIST:
self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('CTRANSLATE2_WEIGHT_TYPE')
@@ -691,8 +723,9 @@ class Config:
@CTRANSLATE2_WEIGHT_TYPE.setter
def CTRANSLATE2_WEIGHT_TYPE(self, value):
if isinstance(value, str):
self._CTRANSLATE2_WEIGHT_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST:
self._CTRANSLATE2_WEIGHT_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('WHISPER_WEIGHT_TYPE')
@@ -702,8 +735,9 @@ class Config:
@WHISPER_WEIGHT_TYPE.setter
def WHISPER_WEIGHT_TYPE(self, value):
if isinstance(value, str):
self._WHISPER_WEIGHT_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SELECTABLE_WHISPER_WEIGHT_TYPE_LIST:
self._WHISPER_WEIGHT_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('AUTO_CLEAR_MESSAGE_BOX')
@@ -735,8 +769,9 @@ class Config:
@SEND_MESSAGE_BUTTON_TYPE.setter
def SEND_MESSAGE_BUTTON_TYPE(self, value):
if isinstance(value, str):
self._SEND_MESSAGE_BUTTON_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
if value in self.SEND_MESSAGE_BUTTON_TYPE_LIST:
self._SEND_MESSAGE_BUTTON_TYPE = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('OVERLAY_SMALL_LOG')
@@ -761,8 +796,8 @@ class Config:
match (key):
case "tracker":
if isinstance(value, str):
# "HMD", "LeftHand", "RightHand"
self._OVERLAY_SMALL_LOG_SETTINGS[key] = value
if value in ["HMD", "LeftHand", "RightHand"]:
self._OVERLAY_SMALL_LOG_SETTINGS[key] = value
case "x_pos" | "y_pos" | "z_pos" | "x_rotation" | "y_rotation" | "z_rotation":
if isinstance(value, (int, float)):
self._OVERLAY_SMALL_LOG_SETTINGS[key] = float(value)
@@ -797,8 +832,8 @@ class Config:
match (key):
case "tracker":
if isinstance(value, str):
# "HMD", "LeftHand", "RightHand"
self._OVERLAY_LARGE_LOG_SETTINGS[key] = value
if value in ["HMD", "LeftHand", "RightHand"]:
self._OVERLAY_LARGE_LOG_SETTINGS[key] = value
case "x_pos" | "y_pos" | "z_pos" | "x_rotation" | "y_rotation" | "z_rotation":
if isinstance(value, (int, float)):
self._OVERLAY_LARGE_LOG_SETTINGS[key] = float(value)
@@ -832,57 +867,57 @@ class Config:
self._SEND_MESSAGE_TO_VRC = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_FORMAT')
def SEND_MESSAGE_FORMAT(self):
return self._SEND_MESSAGE_FORMAT
# @property
# @json_serializable('SEND_MESSAGE_FORMAT')
# def SEND_MESSAGE_FORMAT(self):
# return self._SEND_MESSAGE_FORMAT
@SEND_MESSAGE_FORMAT.setter
def SEND_MESSAGE_FORMAT(self, value):
if isinstance(value, str):
if isUniqueStrings(["[message]"], value) is False:
value = "[message]"
self._SEND_MESSAGE_FORMAT = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
# @SEND_MESSAGE_FORMAT.setter
# def SEND_MESSAGE_FORMAT(self, value):
# if isinstance(value, str):
# if isUniqueStrings(["[message]"], value) is False:
# value = "[message]"
# self._SEND_MESSAGE_FORMAT = value
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_MESSAGE_FORMAT_WITH_T')
def SEND_MESSAGE_FORMAT_WITH_T(self):
return self._SEND_MESSAGE_FORMAT_WITH_T
# @property
# @json_serializable('SEND_MESSAGE_FORMAT_WITH_T')
# def SEND_MESSAGE_FORMAT_WITH_T(self):
# return self._SEND_MESSAGE_FORMAT_WITH_T
@SEND_MESSAGE_FORMAT_WITH_T.setter
def SEND_MESSAGE_FORMAT_WITH_T(self, value):
if isinstance(value, str):
if isUniqueStrings(["[message]", "[translation]"], value) is False:
value = "[message]([translation])"
self._SEND_MESSAGE_FORMAT_WITH_T = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
# @SEND_MESSAGE_FORMAT_WITH_T.setter
# def SEND_MESSAGE_FORMAT_WITH_T(self, value):
# if isinstance(value, str):
# if isUniqueStrings(["[message]", "[translation]"], value) is False:
# value = "[message]([translation])"
# self._SEND_MESSAGE_FORMAT_WITH_T = value
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RECEIVED_MESSAGE_FORMAT')
def RECEIVED_MESSAGE_FORMAT(self):
return self._RECEIVED_MESSAGE_FORMAT
# @property
# @json_serializable('RECEIVED_MESSAGE_FORMAT')
# def RECEIVED_MESSAGE_FORMAT(self):
# return self._RECEIVED_MESSAGE_FORMAT
@RECEIVED_MESSAGE_FORMAT.setter
def RECEIVED_MESSAGE_FORMAT(self, value):
if isinstance(value, str):
if isUniqueStrings(["[message]"], value) is False:
value = "[message]"
self._RECEIVED_MESSAGE_FORMAT = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
# @RECEIVED_MESSAGE_FORMAT.setter
# def RECEIVED_MESSAGE_FORMAT(self, value):
# if isinstance(value, str):
# if isUniqueStrings(["[message]"], value) is False:
# value = "[message]"
# self._RECEIVED_MESSAGE_FORMAT = value
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('RECEIVED_MESSAGE_FORMAT_WITH_T')
def RECEIVED_MESSAGE_FORMAT_WITH_T(self):
return self._RECEIVED_MESSAGE_FORMAT_WITH_T
# @property
# @json_serializable('RECEIVED_MESSAGE_FORMAT_WITH_T')
# def RECEIVED_MESSAGE_FORMAT_WITH_T(self):
# return self._RECEIVED_MESSAGE_FORMAT_WITH_T
@RECEIVED_MESSAGE_FORMAT_WITH_T.setter
def RECEIVED_MESSAGE_FORMAT_WITH_T(self, value):
if isinstance(value, str):
if isUniqueStrings(["[message]", "[translation]"], value) is False:
value = "[message]([translation])"
self._RECEIVED_MESSAGE_FORMAT_WITH_T = value
self.saveConfig(inspect.currentframe().f_code.co_name, value)
# @RECEIVED_MESSAGE_FORMAT_WITH_T.setter
# def RECEIVED_MESSAGE_FORMAT_WITH_T(self, value):
# if isinstance(value, str):
# if isUniqueStrings(["[message]", "[translation]"], value) is False:
# value = "[message]([translation])"
# self._RECEIVED_MESSAGE_FORMAT_WITH_T = value
# self.saveConfig(inspect.currentframe().f_code.co_name, value)
@property
@json_serializable('SEND_RECEIVED_MESSAGE_TO_VRC')
@@ -932,15 +967,29 @@ class Config:
self._BOOTH_URL = "https://misyaguziya.booth.pm/"
self._DOCUMENTS_URL = "https://mzsoftware.notion.site/VRCT-Documents-be79b7a165f64442ad8f326d86c22246"
self._DEEPL_AUTH_KEY_PAGE_URL = "https://www.deepl.com/ja/account/summary"
self._TRANSPARENCY_RANGE = (40, 100)
self._UI_SCALING_RANGE = (40, 200)
self._TEXTBOX_UI_SCALING_RANGE = (40, 200)
self._MESSAGE_BOX_RATIO_RANGE = (1, 99)
# self._TRANSPARENCY_RANGE = (40, 100)
# self._UI_SCALING_RANGE = (40, 200)
# self._TEXTBOX_UI_SCALING_RANGE = (40, 200)
# self._MESSAGE_BOX_RATIO_RANGE = (1, 99)
self._MAX_MIC_THRESHOLD = 2000
self._MAX_SPEAKER_THRESHOLD = 4000
self._WATCHDOG_TIMEOUT = 60
self._WATCHDOG_INTERVAL = 20
self._SELECTABLE_TAB_NO_LIST = ["1", "2", "3"]
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST = ctranslate2_weights.keys()
self._SELECTABLE_WHISPER_WEIGHT_TYPE_LIST = whisper_models.keys()
self._SELECTABLE_TRANSLATION_ENGINE_LIST = translation_lang.keys()
self._SELECTABLE_TRANSCRIPTION_ENGINE_LIST = translation_lang.keys()
self._SELECTABLE_UI_LANGUAGE_LIST = ["en", "ja", "ko", "zh-Hant", "zh-Hans"]
self._COMPUTE_MODE = "cuda" if torch.cuda.is_available() else "cpu"
self._SELECTABLE_COMPUTE_DEVICE_LIST = []
if torch.cuda.is_available():
for i in range(torch.cuda.device_count()):
self._SELECTABLE_COMPUTE_DEVICE_LIST.append({"device":"cuda", "device_index": i, "name": torch.cuda.get_device_name(i)})
self._SELECTABLE_COMPUTE_DEVICE_LIST.append({"device":"cpu", "device_index": 0, "name": "cpu"})
self._SEND_MESSAGE_BUTTON_TYPE_LIST = ["show", "hide", "show_and_disable_enter_key"]
# Read Write
self._ENABLE_TRANSLATION = False
self._ENABLE_TRANSCRIPTION_SEND = False
@@ -948,92 +997,43 @@ class Config:
self._ENABLE_FOREGROUND = False
self._ENABLE_CHECK_ENERGY_SEND = False
self._ENABLE_CHECK_ENERGY_RECEIVE = False
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT = {
"small": False,
"large": False,
}
self._SELECTABLE_WHISPER_WEIGHT_TYPE_DICT = {
"tiny": False,
"base": False,
"small": False,
"medium": False,
"large-v1": False,
"large-v2": False,
"large-v3": False,
}
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT = {}
for weight_type in self.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST:
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT[weight_type] = False
self._SELECTABLE_WHISPER_WEIGHT_TYPE_DICT = {}
for weight_type in self.SELECTABLE_WHISPER_WEIGHT_TYPE_LIST:
self._SELECTABLE_WHISPER_WEIGHT_TYPE_DICT[weight_type] = False
# Save Json Data
## Main Window
self._SELECTED_TAB_NO = "1"
self._SELECTED_TRANSLATION_ENGINES = {
"1":"CTranslate2",
"2":"CTranslate2",
"3":"CTranslate2",
}
self._SELECTED_YOUR_LANGUAGES = {
"1":{
"primary":{
"language":"Japanese",
"country":"Japan"
self._SELECTED_TRANSLATION_ENGINES = {}
for tab_no in self.SELECTABLE_TAB_NO_LIST:
self._SELECTED_TRANSLATION_ENGINES[tab_no] = "CTranslate2"
self._SELECTED_YOUR_LANGUAGES = {}
for tab_no in self.SELECTABLE_TAB_NO_LIST:
self._SELECTED_YOUR_LANGUAGES[tab_no] = {
"primary": {
"language": "Japanese",
"country": "Japan",
},
},
"2":{
"primary":{
"language":"Japanese",
"country":"Japan"
}
self._SELECTED_TARGET_LANGUAGES = {}
for tab_no in self.SELECTABLE_TAB_NO_LIST:
self._SELECTED_TARGET_LANGUAGES[tab_no] = {
"primary": {
"language": "English",
"country": "United States",
},
},
"3":{
"primary":{
"language":"Japanese",
"country":"Japan"
"secondary": {
"language": "English",
"country": "United States",
},
},
}
self._SELECTED_TARGET_LANGUAGES = {
"1":{
"primary":{
"language":"English",
"country":"United States",
"tertiary": {
"language": "English",
"country": "United States",
},
"secondary":{
"language":"English",
"country":"United States"
},
"tertiary":{
"language":"English",
"country":"United States"
},
},
"2":{
"primary":{
"language":"English",
"country":"United States",
},
"secondary":{
"language":"English",
"country":"United States"
},
"tertiary":{
"language":"English",
"country":"United States"
},
},
"3":{
"primary":{
"language":"English",
"country":"United States",
},
"secondary":{
"language":"English",
"country":"United States"
},
"tertiary":{
"language":"English",
"country":"United States"
},
},
}
}
self._SELECTED_TRANSCRIPTION_ENGINE = "Google"
self._MULTI_LANGUAGE_TRANSLATION = False
self._CONVERT_MESSAGE_TO_ROMAJI = False
@@ -1047,7 +1047,6 @@ class Config:
self._MESSAGE_BOX_RATIO = 10
self._FONT_FAMILY = "Yu Gothic UI"
self._UI_LANGUAGE = "en"
self._RESTORE_MAIN_WINDOW_GEOMETRY = True
self._MAIN_WINDOW_GEOMETRY = {
"x_pos": 0,
"y_pos": 0,
@@ -1084,10 +1083,10 @@ class Config:
self._SELECTED_TRANSCRIPTION_COMPUTE_DEVICE = {"device": "cpu", "device_index": 0, "device_name":"cpu"}
self._CTRANSLATE2_WEIGHT_TYPE = "small"
self._WHISPER_WEIGHT_TYPE = "base"
self._SEND_MESSAGE_FORMAT = "[message]"
self._SEND_MESSAGE_FORMAT_WITH_T = "[message]([translation])"
self._RECEIVED_MESSAGE_FORMAT = "[message]"
self._RECEIVED_MESSAGE_FORMAT_WITH_T = "[message]([translation])"
# self._SEND_MESSAGE_FORMAT = "[message]"
# self._SEND_MESSAGE_FORMAT_WITH_T = "[message]([translation])"
# self._RECEIVED_MESSAGE_FORMAT = "[message]"
# self._RECEIVED_MESSAGE_FORMAT_WITH_T = "[message]([translation])"
self._AUTO_CLEAR_MESSAGE_BOX = True
self._SEND_ONLY_TRANSLATED_MESSAGES = False
self._SEND_MESSAGE_BUTTON_TYPE = "show"

View File

@@ -7,7 +7,6 @@ from device_manager import device_manager
from config import config
from model import model
from utils import isUniqueStrings, removeLog, printLog
import torch
class Controller:
def __init__(self) -> None:
@@ -403,38 +402,29 @@ class Controller:
update_flag,
)
@staticmethod
def getTransparencyRange(*args, **kwargs) -> dict:
return {"status":200, "result":config.TRANSPARENCY_RANGE}
# @staticmethod
# def getTransparencyRange(*args, **kwargs) -> dict:
# return {"status":200, "result":config.TRANSPARENCY_RANGE}
@staticmethod
def getUiScalingRange(*args, **kwargs) -> dict:
return {"status":200, "result":config.UI_SCALING_RANGE}
# @staticmethod
# def getUiScalingRange(*args, **kwargs) -> dict:
# return {"status":200, "result":config.UI_SCALING_RANGE}
@staticmethod
def getTextboxUiScalingRange(*args, **kwargs) -> dict:
return {"status":200, "result":config.TEXTBOX_UI_SCALING_RANGE}
# @staticmethod
# def getTextboxUiScalingRange(*args, **kwargs) -> dict:
# return {"status":200, "result":config.TEXTBOX_UI_SCALING_RANGE}
@staticmethod
def getMessageBoxRatioRange(*args, **kwargs) -> dict:
return {"status":200, "result":config.MESSAGE_BOX_RATIO_RANGE}
# @staticmethod
# def getMessageBoxRatioRange(*args, **kwargs) -> dict:
# return {"status":200, "result":config.MESSAGE_BOX_RATIO_RANGE}
@staticmethod
def getComputeMode(*args, **kwargs) -> dict:
if torch.cuda.is_available():
compute_mode = "cuda"
else:
compute_mode = "cpu"
return {"status":200, "result":compute_mode}
return {"status":200, "result":config.COMPUTE_MODE}
@staticmethod
def getComputeDeviceList(*args, **kwargs) -> dict:
device_list = []
if torch.cuda.is_available():
for i in range(torch.cuda.device_count()):
device_list.append({"device":"cuda", "device_index": i, "name": torch.cuda.get_device_name(i)})
device_list.append({"device":"cpu", "device_index": 0, "name": "cpu"})
return {"status":200, "result":device_list}
return {"status":200, "result":config.SELECTABLE_COMPUTE_DEVICE_LIST}
@staticmethod
def getSelectedTranslationComputeDevice(*args, **kwargs) -> dict:
@@ -464,13 +454,13 @@ class Controller:
def getSelectableWhisperWeightTypeDict(*args, **kwargs) -> dict:
return {"status":200, "result":config.SELECTABLE_WHISPER_WEIGHT_TYPE_DICT}
@staticmethod
def getMaxMicThreshold(*args, **kwargs) -> dict:
return {"status":200, "result":config.MAX_MIC_THRESHOLD}
# @staticmethod
# def getMaxMicThreshold(*args, **kwargs) -> dict:
# return {"status":200, "result":config.MAX_MIC_THRESHOLD}
@staticmethod
def getMaxSpeakerThreshold(*args, **kwargs) -> dict:
return {"status":200, "result":config.MAX_SPEAKER_THRESHOLD}
# @staticmethod
# def getMaxSpeakerThreshold(*args, **kwargs) -> dict:
# return {"status":200, "result":config.MAX_SPEAKER_THRESHOLD}
@staticmethod
def setEnableTranslation(*args, **kwargs) -> dict:
@@ -675,20 +665,6 @@ class Controller:
config.UI_LANGUAGE = data
return {"status":200, "result":config.UI_LANGUAGE}
@staticmethod
def getRestoreMainWindowGeometry(*args, **kwargs) -> dict:
return {"status":200, "result":config.RESTORE_MAIN_WINDOW_GEOMETRY}
@staticmethod
def setEnableRestoreMainWindowGeometry(*args, **kwargs) -> dict:
config.RESTORE_MAIN_WINDOW_GEOMETRY = True
return {"status":200, "result":config.RESTORE_MAIN_WINDOW_GEOMETRY}
@staticmethod
def setDisableRestoreMainWindowGeometry(*args, **kwargs) -> dict:
config.RESTORE_MAIN_WINDOW_GEOMETRY = False
return {"status":200, "result":config.RESTORE_MAIN_WINDOW_GEOMETRY}
@staticmethod
def getMainWindowGeometry(*args, **kwargs) -> dict:
return {"status":200, "result":config.MAIN_WINDOW_GEOMETRY}
@@ -1268,47 +1244,47 @@ class Controller:
config.SEND_MESSAGE_TO_VRC = False
return {"status":200, "result":config.SEND_MESSAGE_TO_VRC}
@staticmethod
def getSendMessageFormat(*args, **kwargs) -> dict:
return {"status":200, "result":config.SEND_MESSAGE_FORMAT}
# @staticmethod
# def getSendMessageFormat(*args, **kwargs) -> dict:
# return {"status":200, "result":config.SEND_MESSAGE_FORMAT}
@staticmethod
def setSendMessageFormat(data, *args, **kwargs) -> dict:
if isUniqueStrings(["[message]"], data) is True:
config.SEND_MESSAGE_FORMAT = data
return {"status":200, "result":config.SEND_MESSAGE_FORMAT}
# @staticmethod
# def setSendMessageFormat(data, *args, **kwargs) -> dict:
# if isUniqueStrings(["[message]"], data) is True:
# config.SEND_MESSAGE_FORMAT = data
# return {"status":200, "result":config.SEND_MESSAGE_FORMAT}
@staticmethod
def getSendMessageFormatWithT(*args, **kwargs) -> dict:
return {"status":200, "result":config.SEND_MESSAGE_FORMAT_WITH_T}
# @staticmethod
# def getSendMessageFormatWithT(*args, **kwargs) -> dict:
# return {"status":200, "result":config.SEND_MESSAGE_FORMAT_WITH_T}
@staticmethod
def setSendMessageFormatWithT(data, *args, **kwargs) -> dict:
if len(data) > 0:
if isUniqueStrings(["[message]", "[translation]"], data) is True:
config.SEND_MESSAGE_FORMAT_WITH_T = data
return {"status":200, "result":config.SEND_MESSAGE_FORMAT_WITH_T}
# @staticmethod
# def setSendMessageFormatWithT(data, *args, **kwargs) -> dict:
# if len(data) > 0:
# if isUniqueStrings(["[message]", "[translation]"], data) is True:
# config.SEND_MESSAGE_FORMAT_WITH_T = data
# return {"status":200, "result":config.SEND_MESSAGE_FORMAT_WITH_T}
@staticmethod
def getReceivedMessageFormat(*args, **kwargs) -> dict:
return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT}
# @staticmethod
# def getReceivedMessageFormat(*args, **kwargs) -> dict:
# return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT}
@staticmethod
def setReceivedMessageFormat(data, *args, **kwargs) -> dict:
if isUniqueStrings(["[message]"], data) is True:
config.RECEIVED_MESSAGE_FORMAT = data
return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT}
# @staticmethod
# def setReceivedMessageFormat(data, *args, **kwargs) -> dict:
# if isUniqueStrings(["[message]"], data) is True:
# config.RECEIVED_MESSAGE_FORMAT = data
# return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT}
@staticmethod
def getReceivedMessageFormatWithT(*args, **kwargs) -> dict:
return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT_WITH_T}
# @staticmethod
# def getReceivedMessageFormatWithT(*args, **kwargs) -> dict:
# return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT_WITH_T}
@staticmethod
def setReceivedMessageFormatWithT(data, *args, **kwargs) -> dict:
if len(data) > 0:
if isUniqueStrings(["[message]", "[translation]"], data) is True:
config.RECEIVED_MESSAGE_FORMAT_WITH_T = data
return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT_WITH_T}
# @staticmethod
# def setReceivedMessageFormatWithT(data, *args, **kwargs) -> dict:
# if len(data) > 0:
# if isUniqueStrings(["[message]", "[translation]"], data) is True:
# config.RECEIVED_MESSAGE_FORMAT_WITH_T = data
# return {"status":200, "result":config.RECEIVED_MESSAGE_FORMAT_WITH_T}
@staticmethod
def getSendReceivedMessageToVrc(*args, **kwargs) -> dict:
@@ -1690,7 +1666,7 @@ class Controller:
@staticmethod
def updateComputeDeviceSettings() -> None:
if torch.cuda.is_available() is False:
if config.COMPUTE_MODE == "cpu":
if config.SELECTED_TRANSLATION_COMPUTE_DEVICE["device"] != "cpu":
config.SELECTED_TRANSLATION_COMPUTE_DEVICE = {"device":"cpu", "device_index":0, "device_name":"cpu"}
if config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE["device"] != "cpu":

View File

@@ -103,10 +103,6 @@ mapping = {
"/get/data/transparency": {"status": True, "variable":controller.getTransparency},
"/set/data/transparency": {"status": True, "variable":controller.setTransparency},
# "/get/data/appearance_theme_list": {"status": True, "variable":controller.getAppearanceThemesList},
# "/get/data/appearance_theme": {"status": True, "variable":controller.getAppearanceTheme},
# "/set/data/appearance_theme": {"status": True, "variable":controller.setAppearanceTheme},
# "/get/data/ui_scaling_range": {"status": True, "variable":controller.getUiScalingRange},
"/get/data/ui_scaling": {"status": True, "variable":controller.getUiScaling},
"/set/data/ui_scaling": {"status": True, "variable":controller.setUiScaling},
@@ -125,10 +121,6 @@ mapping = {
"/get/data/ui_language": {"status": True, "variable":controller.getUiLanguage},
"/set/data/ui_language": {"status": True, "variable":controller.setUiLanguage},
# "/get/data/restore_main_window_geometry": {"status": True, "variable":controller.getRestoreMainWindowGeometry},
# "/set/enable/restore_main_window_geometry": {"status": True, "variable":controller.setEnableRestoreMainWindowGeometry},
# "/set/disable/restore_main_window_geometry": {"status": True, "variable":controller.setDisableRestoreMainWindowGeometry},
"/get/data/main_window_geometry": {"status": True, "variable":controller.getMainWindowGeometry},
"/set/data/main_window_geometry": {"status": True, "variable":controller.setMainWindowGeometry},