👍️[Update] Optimize : Init時のconfigの取得処理を変更

This commit is contained in:
misyaguziya
2024-10-26 01:24:37 +09:00
parent bd0431f79c
commit ca7ba5ce09
6 changed files with 118 additions and 95 deletions

View File

@@ -6,7 +6,7 @@ from json import dump as json_dump
from device_manager import device_manager
from models.transcription.transcription_languages import transcription_lang
from utils import generatePercentageStringsList, isUniqueStrings
from utils import isUniqueStrings
json_serializable_vars = {}
def json_serializable(var_name):
@@ -78,8 +78,8 @@ class Config:
return self._APPEARANCE_THEME_LIST
@property
def UI_SCALING_LIST(self):
return self._UI_SCALING_LIST
def UI_SCALING_RANGE(self):
return self._UI_SCALING_RANGE
@property
def TEXTBOX_UI_SCALING_RANGE(self):
@@ -90,12 +90,12 @@ class Config:
return self._MESSAGE_BOX_RATIO_RANGE
@property
def SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT(self):
return self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT
def SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST(self):
return self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST
@property
def SELECTABLE_WHISPER_WEIGHT_TYPE_DICT(self):
return self._SELECTABLE_WHISPER_WEIGHT_TYPE_DICT
def SELECTABLE_WHISPER_WEIGHT_TYPE_LIST(self):
return self._SELECTABLE_WHISPER_WEIGHT_TYPE_LIST
@property
def MAX_MIC_THRESHOLD(self):
@@ -753,7 +753,7 @@ class Config:
@CTRANSLATE2_WEIGHT_TYPE.setter
def CTRANSLATE2_WEIGHT_TYPE(self, value):
# if isinstance(value, str) and value in self.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT:
# if isinstance(value, str) and value in self.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST:
if isinstance(value, str):
self._CTRANSLATE2_WEIGHT_TYPE = value
saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value)
@@ -966,27 +966,25 @@ 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 = (50, 100)
self._TRANSPARENCY_RANGE = (40, 100)
self._APPEARANCE_THEME_LIST = ["Light", "Dark", "System"]
self._UI_SCALING_LIST = generatePercentageStringsList(start=40, end=200, step=10)
self._TEXTBOX_UI_SCALING_RANGE = (50, 200)
self._UI_SCALING_RANGE = (40, 200)
self._TEXTBOX_UI_SCALING_RANGE = (40, 200)
self._MESSAGE_BOX_RATIO_RANGE = (1, 99)
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT = {
# {Save json str}: {i18n_placeholder} pairs
"Small": "Small",
"Large": "Large",
}
self._SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST = [
"Small",
"Large",
]
self._SELECTABLE_WHISPER_WEIGHT_TYPE_DICT = {
# {Save json str}: {i18n_placeholder} pairs
"tiny": "tiny",
"base": "base",
"small": "small",
"medium": "medium",
"large-v1": "large-v1",
"large-v2": "large-v2",
"large-v3": "large-v3",
}
self._SELECTABLE_WHISPER_WEIGHT_TYPE_LIST = [
"tiny",
"base",
"small",
"medium",
"large-v1",
"large-v2",
"large-v3",
]
self._MAX_MIC_THRESHOLD = 2000
self._MAX_SPEAKER_THRESHOLD = 4000
@@ -1165,15 +1163,9 @@ class Config:
with open(self.PATH_CONFIG, 'r', encoding="utf-8") as fp:
config = json_load(fp)
old_message_format = None
for key in config.keys():
if key == "MESSAGE_FORMAT":
old_message_format = config[key]
setattr(self, key, config[key])
if old_message_format is not None:
setattr(self, "SEND_MESSAGE_FORMAT_WITH_T", old_message_format)
with open(self.PATH_CONFIG, 'w', encoding="utf-8") as fp:
config = {}
for var_name, var_func in json_serializable_vars.items():

View File

@@ -1,7 +1,6 @@
from os import path as os_path, makedirs as os_makedirs
from requests import get as requests_get
from typing import Callable
import torch
import huggingface_hub
from faster_whisper import WhisperModel
import logging

View File

@@ -22,12 +22,6 @@ def makeEven(number, minus:bool=False):
return number if isEven(number) else number - 1
return number if isEven(number) else number + 1
def generatePercentageStringsList(start:int, end:int, step:int):
strings = []
for percent in range(start, end + 1, step):
strings.append(f"{percent}%")
return strings
def intToPctStr(value:int):
return f"{value}%"

View File

@@ -11,16 +11,45 @@ import torch
class Controller:
def __init__(self) -> None:
self.init_mapping = {}
self.run_mapping = {}
self.run = None
self.device_access_status = True
def setInitMapping(self, init_mapping:dict) -> None:
self.init_mapping = init_mapping
def setRunMapping(self, run_mapping:dict) -> None:
self.run_mapping = run_mapping
def setRun(self, run:Callable[[int, str, Any], None]) -> None:
self.run = run
# configの初期値を設定
def sendConfigStatusTrueData(self) -> None:
for endpoint, dict_data in self.init_mapping.items():
if dict_data["status"] is True:
response = dict_data["variable"](None)
status = response.get("status", None)
result = response.get("result", None)
self.run(
status,
endpoint,
result,
)
def sendConfigStatusFalseData(self) -> None:
for endpoint, dict_data in self.init_mapping.items():
if dict_data["status"] is False:
response = dict_data["variable"](None)
status = response.get("status", None)
result = response.get("result", None)
self.run(
status,
endpoint,
result,
)
# response functions
def updateMicHostList(self) -> None:
self.run(
@@ -353,8 +382,8 @@ class Controller:
return {"status":200, "result":config.APPEARANCE_THEME_LIST}
@staticmethod
def getUiScalingList(*args, **kwargs) -> dict:
return {"status":200, "result":config.UI_SCALING_LIST}
def getUiScalingRange(*args, **kwargs) -> dict:
return {"status":200, "result":config.UI_SCALING_RANGE}
@staticmethod
def getTextboxUiScalingRange(*args, **kwargs) -> dict:
@@ -381,8 +410,8 @@ class Controller:
return {"status":200,"result":config.SELECTED_TRANSLATION_COMPUTE_DEVICE}
@staticmethod
def getSelectableCtranslate2WeightTypeDict(*args, **kwargs) -> dict:
return {"status":200, "result":config.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_DICT}
def getSelectableCtranslate2WeightTypeList(*args, **kwargs) -> dict:
return {"status":200, "result":config.SELECTABLE_CTRANSLATE2_WEIGHT_TYPE_LIST}
@staticmethod
def getSelectedTranscriptionComputeDevice(*args, **kwargs) -> dict:
@@ -395,8 +424,8 @@ class Controller:
return {"status":200,"result":config.SELECTED_TRANSCRIPTION_COMPUTE_DEVICE}
@staticmethod
def getSelectableWhisperModelTypeDict(*args, **kwargs) -> dict:
return {"status":200, "result":config.SELECTABLE_WHISPER_WEIGHT_TYPE_DICT}
def getSelectableWhisperWeightTypeList(*args, **kwargs) -> dict:
return {"status":200, "result":config.SELECTABLE_WHISPER_WEIGHT_TYPE_LIST}
@staticmethod
def getMaxMicThreshold(*args, **kwargs) -> dict:

View File

@@ -94,11 +94,11 @@ 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/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_list": {"status": True, "variable":controller.getUiScalingList},
"/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},
@@ -128,11 +128,11 @@ mapping = {
"/set/enable/use_translation_feature": {"status": True, "variable":controller.setEnableUseTranslationFeature},
"/set/disable/use_translation_feature": {"status": True, "variable":controller.setDisableUseTranslationFeature},
"/get/data/translation_compute_device_dict": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/translation_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/selected_translation_compute_device": {"status": True, "variable":controller.getSelectedTranslationComputeDevice},
"/set/data/selected_translation_compute_device": {"status": True, "variable":controller.setSelectedTranslationComputeDevice},
"/get/data/selectable_ctranslate2_weight_type_dict": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeDict},
"/get/data/selectable_ctranslate2_weight_type_list": {"status": True, "variable":controller.getSelectableCtranslate2WeightTypeList},
"/get/data/ctranslate2_weight_type": {"status": True, "variable":controller.getCtranslate2WeightType},
"/set/data/ctranslate2_weight_type": {"status": True, "variable":controller.setCtranslate2WeightType},
@@ -233,11 +233,11 @@ mapping = {
"/set/enable/check_speaker_threshold": {"status": True, "variable":controller.setEnableCheckSpeakerThreshold},
"/set/disable/check_speaker_threshold": {"status": True, "variable":controller.setDisableCheckSpeakerThreshold},
"/get/data/transcription_compute_device_dict": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/transcription_compute_device_list": {"status": True, "variable":controller.getComputeDeviceList},
"/get/data/selected_transcription_compute_device": {"status": True, "variable":controller.getSelectedTranscriptionComputeDevice},
"/set/data/selected_transcription_compute_device": {"status": True, "variable":controller.setSelectedTranscriptionComputeDevice},
"/get/data/selectable_whisper_weight_type_dict": {"status": True, "variable":controller.getSelectableWhisperModelTypeDict},
"/get/data/selectable_whisper_weight_type_list": {"status": True, "variable":controller.getSelectableWhisperWeightTypeList},
"/get/data/whisper_weight_type": {"status": True, "variable":controller.getWhisperWeightType},
"/set/data/whisper_weight_type": {"status": True, "variable":controller.setWhisperWeightType},
@@ -315,6 +315,9 @@ mapping = {
# "/run/stop_watchdog": {"status": True, "variable":controller.stopWatchdog},
}
init_mapping = {key:value for key, value in mapping.items() if key.startswith("/get/data/")}
controller.setInitMapping(init_mapping)
class Main:
def __init__(self) -> None:
self.queue = Queue()
@@ -392,9 +395,15 @@ if __name__ == "__main__":
main.startReceiver()
main.startHandler()
# mappingのget/data/*でかつstatus:Trueのendpointを実行する
controller.sendConfigStatusTrueData()
controller.setWatchdogCallback(main.stop)
controller.init()
# mappingのget/data/*でかつstatus:Falseのendpointを実行する
controller.sendConfigStatusFalseData()
# mappingのすべてのstatusをTrueにする
for key in mapping.keys():
mapping[key]["status"] = True

View File

@@ -138,60 +138,60 @@ const StartPythonFacadeComponent = () => {
fetchAndUpdateWindowGeometry();
getUiLanguage();
getUiScaling();
getMessageLogUiScaling();
getIsMainPageCompactMode();
getMessageInputBoxRatio();
getTransparency();
// getUiLanguage();
// getUiScaling();
// getMessageLogUiScaling();
// getIsMainPageCompactMode();
// getMessageInputBoxRatio();
// getTransparency();
asyncFetchFonts();
getSelectedFontFamily();
// getSelectedFontFamily();
getSoftwareVersion();
// getSoftwareVersion();
getSelectedPresetTabNumber();
getEnableMultiTranslation();
getSelectedYourLanguages();
getSelectedTargetLanguages();
getSelectableLanguageList();
getTranslationEngines();
getSelectedTranslationEngines();
// getSelectedPresetTabNumber();
// getEnableMultiTranslation();
// getSelectedYourLanguages();
// getSelectedTargetLanguages();
// getSelectableLanguageList();
// getTranslationEngines();
// getSelectedTranslationEngines();
getMicHostList();
getMicDeviceList();
getSpeakerDeviceList();
// getMicHostList();
// getMicDeviceList();
// getSpeakerDeviceList();
getEnableAutoMicSelect();
getEnableAutoSpeakerSelect();
getSelectedMicHost();
getSelectedMicDevice();
getSelectedSpeakerDevice();
// getEnableAutoMicSelect();
// getEnableAutoSpeakerSelect();
// getSelectedMicHost();
// getSelectedMicDevice();
// getSelectedSpeakerDevice();
getMicThreshold();
getSpeakerThreshold();
getEnableAutomaticMicThreshold();
getEnableAutomaticSpeakerThreshold();
// getMicThreshold();
// getSpeakerThreshold();
// getEnableAutomaticMicThreshold();
// getEnableAutomaticSpeakerThreshold();
getMicRecordTimeout();
getMicPhraseTimeout();
getMicMaxWords();
getMicWordFilterList();
// getMicRecordTimeout();
// getMicPhraseTimeout();
// getMicMaxWords();
// getMicWordFilterList();
getSpeakerRecordTimeout();
getSpeakerPhraseTimeout();
getSpeakerMaxWords();
// getSpeakerRecordTimeout();
// getSpeakerPhraseTimeout();
// getSpeakerMaxWords();
getEnableAutoClearMessageInputBox();
getSendMessageButtonType();
// getEnableAutoClearMessageInputBox();
// getSendMessageButtonType();
getEnableSendOnlyTranslatedMessages();
getEnableAutoExportMessageLogs();
getEnableVrcMicMuteSync();
getEnableSendMessageToVrc();
// getEnableSendOnlyTranslatedMessages();
// getEnableAutoExportMessageLogs();
// getEnableVrcMicMuteSync();
// getEnableSendMessageToVrc();
getOscIpAddress();
getOscPort();
// getOscIpAddress();
// getOscPort();
}).catch((err) => {
console.error(err);
});