🚧 [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": if buffer_default_speaker_device["device"]["name"] != "NoDevice":
break break
printLog(self.mic_devices)
self.mic_devices = buffer_mic_devices self.mic_devices = buffer_mic_devices
self.default_mic_device = buffer_default_mic_device self.default_mic_device = buffer_default_mic_device
self.speaker_devices = buffer_speaker_devices self.speaker_devices = buffer_speaker_devices
@@ -152,11 +154,11 @@ class DeviceManager:
printLog("checkUpdate: mic_host") printLog("checkUpdate: mic_host")
self.update_flag_host_list = True self.update_flag_host_list = True
self.prev_mic_host = [host for host in self.mic_devices] 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") printLog("checkUpdate: mic_devices")
self.update_flag_mic_device_list = True self.update_flag_mic_device_list = True
self.prev_mic_devices = self.mic_devices 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") printLog("checkUpdate: speaker_devices")
self.update_flag_speaker_device_list = True self.update_flag_speaker_device_list = True
self.prev_speaker_devices = self.speaker_devices self.prev_speaker_devices = self.speaker_devices
@@ -184,8 +186,11 @@ class DeviceManager:
comtypes.CoUninitialize() comtypes.CoUninitialize()
self.runProcessBeforeUpdateDevices() self.runProcessBeforeUpdateDevices()
sleep(2) sleep(2)
self.update() for _ in range(10):
self.checkUpdate() self.update()
if self.checkUpdate():
break
sleep(2)
self.noticeUpdateDevices() self.noticeUpdateDevices()
self.runProcessAfterUpdateDevices() self.runProcessAfterUpdateDevices()
except Exception as e: except Exception as e:

View File

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