🚧 [WIP/TEST] Deviceの自動変更に対応中

Energyの取得処理を修正
This commit is contained in:
misyaguziya
2024-10-03 17:59:25 +09:00
parent d183c56736
commit 65f25725e9
2 changed files with 70 additions and 47 deletions

View File

@@ -134,6 +134,8 @@ class DeviceManager:
if buffer_default_speaker_device["device"]["name"] != "NoDevice":
break
printLog(self.mic_devices)
self.mic_devices = buffer_mic_devices
self.default_mic_device = buffer_default_mic_device
self.speaker_devices = buffer_speaker_devices
@@ -152,11 +154,11 @@ class DeviceManager:
printLog("checkUpdate: mic_host")
self.update_flag_host_list = True
self.prev_mic_host = [host for host in self.mic_devices]
if self.prev_mic_devices != self.mic_devices:
if {key: [device['name'] for device in devices] for key, devices in self.prev_mic_devices.items()} != {key: [device['name'] for device in devices] for key, devices in self.mic_devices.items()}:
printLog("checkUpdate: mic_devices")
self.update_flag_mic_device_list = True
self.prev_mic_devices = self.mic_devices
if self.prev_speaker_devices != self.speaker_devices:
if [device['name'] for device in self.prev_speaker_devices] != [device['name'] for device in self.speaker_devices]:
printLog("checkUpdate: speaker_devices")
self.update_flag_speaker_device_list = True
self.prev_speaker_devices = self.speaker_devices
@@ -184,8 +186,11 @@ class DeviceManager:
comtypes.CoUninitialize()
self.runProcessBeforeUpdateDevices()
sleep(2)
for _ in range(10):
self.update()
self.checkUpdate()
if self.checkUpdate():
break
sleep(2)
self.noticeUpdateDevices()
self.runProcessAfterUpdateDevices()
except Exception as e:

View File

@@ -12,7 +12,7 @@ class Controller:
def __init__(self) -> None:
self.run_mapping = {}
self.run = None
self.transcription_access_status = True
self.device_access_status = True
def setRunMapping(self, run_mapping:dict) -> None:
self.run_mapping = run_mapping
@@ -87,12 +87,6 @@ class Controller:
def updateSelectedMicDevice(self, host, device) -> None:
config.SELECTED_MIC_HOST = host
config.SELECTED_MIC_DEVICE = device
if config.ENABLE_TRANSCRIPTION_SEND is True:
self.startThreadingTranscriptionSendMessage()
if config.ENABLE_CHECK_ENERGY_SEND is True:
model.startCheckMicEnergy(
self.progressBarMicEnergy,
)
self.run(
200,
self.run_mapping["selected_mic_device"],
@@ -101,12 +95,6 @@ class Controller:
def updateSelectedSpeakerDevice(self, device) -> None:
config.SELECTED_SPEAKER_DEVICE = device
if config.ENABLE_TRANSCRIPTION_RECEIVE is True:
self.startThreadingTranscriptionReceiveMessage()
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
model.startCheckSpeakerEnergy(
self.progressBarSpeakerEnergy,
)
self.run(
200,
self.run_mapping["selected_speaker_device"],
@@ -644,10 +632,8 @@ class Controller:
config.SELECTED_MIC_HOST = data
config.SELECTED_MIC_DEVICE = model.getMicDefaultDevice()
if config.ENABLE_CHECK_ENERGY_SEND is True:
model.stopCheckMicEnergy()
model.startCheckMicEnergy(
self.progressBarMicEnergy,
)
self.stopThreadingCheckMicEnergy()
self.startThreadingTranscriptionSendMessage()
return {"status":200,
"result":{
"host":config.SELECTED_MIC_HOST,
@@ -662,10 +648,8 @@ class Controller:
def setSelectedMicDevice(self, data, *args, **kwargs) -> dict:
config.SELECTED_MIC_DEVICE = data
if config.ENABLE_CHECK_ENERGY_SEND is True:
model.stopCheckMicEnergy()
model.startCheckMicEnergy(
self.progressBarMicEnergy,
)
self.stopThreadingCheckMicEnergy()
self.startThreadingTranscriptionSendMessage()
return {"status":200, "result": config.SELECTED_MIC_DEVICE}
@staticmethod
@@ -832,10 +816,8 @@ class Controller:
def setSelectedSpeakerDevice(self, data, *args, **kwargs) -> dict:
config.SELECTED_SPEAKER_DEVICE = data
if config.ENABLE_CHECK_ENERGY_RECEIVE is True:
model.stopCheckSpeakerEnergy()
model.startCheckSpeakerEnergy(
self.progressBarSpeakerEnergy,
)
self.stopThreadingCheckSpeakerEnergy()
self.startThreadingTranscriptionReceiveMessage()
return {"status":200, "result":config.SELECTED_SPEAKER_DEVICE}
@staticmethod
@@ -1293,28 +1275,22 @@ class Controller:
return {"status":200, "result":config.VRC_MIC_MUTE_SYNC}
def setEnableCheckSpeakerThreshold(self, *args, **kwargs) -> dict:
model.startCheckSpeakerEnergy(
self.progressBarSpeakerEnergy,
)
self.startThreadingCheckSpeakerEnergy()
config.ENABLE_CHECK_ENERGY_RECEIVE = True
return {"status":200, "result":config.ENABLE_CHECK_ENERGY_RECEIVE}
@staticmethod
def setDisableCheckSpeakerThreshold(*args, **kwargs) -> dict:
model.stopCheckSpeakerEnergy()
def setDisableCheckSpeakerThreshold(self, *args, **kwargs) -> dict:
self.stopThreadingCheckSpeakerEnergy()
config.ENABLE_CHECK_ENERGY_RECEIVE = False
return {"status":200, "result":config.ENABLE_CHECK_ENERGY_RECEIVE}
def setEnableCheckMicThreshold(self, *args, **kwargs) -> dict:
model.startCheckMicEnergy(
self.progressBarMicEnergy,
)
self.startThreadingCheckMicEnergy()
config.ENABLE_CHECK_ENERGY_SEND = True
return {"status":200, "result":config.ENABLE_CHECK_ENERGY_SEND}
@staticmethod
def setDisableCheckMicThreshold(*args, **kwargs) -> dict:
model.stopCheckMicEnergy()
def setDisableCheckMicThreshold(self, *args, **kwargs) -> dict:
self.stopThreadingCheckMicEnergy()
config.ENABLE_CHECK_ENERGY_SEND = False
return {"status":200, "result":config.ENABLE_CHECK_ENERGY_SEND}
@@ -1428,11 +1404,11 @@ class Controller:
self.run(200, self.run_mapping["translation_engines"], "CTranslate2")
def startTranscriptionSendMessage(self) -> None:
while self.transcription_access_status is False:
while self.device_access_status is False:
sleep(1)
self.transcription_access_status = False
self.device_access_status = False
model.startMicTranscript(self.micMessage)
self.transcription_access_status = True
self.device_access_status = True
@staticmethod
def stopTranscriptionSendMessage() -> None:
@@ -1450,11 +1426,11 @@ class Controller:
th_stopTranscriptionSendMessage.join()
def startTranscriptionReceiveMessage(self) -> None:
while self.transcription_access_status is False:
while self.device_access_status is False:
sleep(1)
self.transcription_access_status = False
self.device_access_status = False
model.startSpeakerTranscript(self.speakerMessage)
self.transcription_access_status = True
self.device_access_status = True
@staticmethod
def stopTranscriptionReceiveMessage() -> None:
@@ -1520,6 +1496,48 @@ class Controller:
self.run(200, self.run_mapping["selected_translation_engines"], config.SELECTED_TRANSLATION_ENGINES)
self.run(200, self.run_mapping["translation_engines"], engines)
def startCheckMicEnergy(self) -> None:
while self.device_access_status is False:
sleep(1)
self.device_access_status = False
model.startCheckMicEnergy(self.progressBarMicEnergy)
self.device_access_status = True
def startThreadingCheckMicEnergy(self) -> None:
th_startCheckMicEnergy = Thread(target=self.startCheckMicEnergy)
th_startCheckMicEnergy.daemon = True
th_startCheckMicEnergy.start()
def stopCheckMicEnergy(self) -> None:
model.stopCheckMicEnergy()
def stopThreadingCheckMicEnergy(self) -> None:
th_stopCheckMicEnergy = Thread(target=self.stopCheckMicEnergy)
th_stopCheckMicEnergy.daemon = True
th_stopCheckMicEnergy.start()
th_stopCheckMicEnergy.join()
def startCheckSpeakerEnergy(self) -> None:
while self.device_access_status is False:
sleep(1)
self.device_access_status = False
model.startCheckSpeakerEnergy(self.progressBarSpeakerEnergy)
self.device_access_status = True
def startThreadingCheckSpeakerEnergy(self) -> None:
th_startCheckSpeakerEnergy = Thread(target=self.startCheckSpeakerEnergy)
th_startCheckSpeakerEnergy.daemon = True
th_startCheckSpeakerEnergy.start()
def stopCheckSpeakerEnergy(self) -> None:
model.stopCheckSpeakerEnergy()
def stopThreadingCheckSpeakerEnergy(self) -> None:
th_stopCheckSpeakerEnergy = Thread(target=self.stopCheckSpeakerEnergy)
th_stopCheckSpeakerEnergy.daemon = True
th_stopCheckSpeakerEnergy.start()
th_stopCheckSpeakerEnergy.join()
@staticmethod
def startThreadingDownloadCtranslate2Weight(callback:Callable[[float], None]) -> None:
th_download = Thread(target=model.downloadCTranslate2ModelWeight, args=(callback,))