👍️[Update] Config : config.jsonが異常値だった場合のセーフティ機能を追加
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user