[fix] Model: Handle cases where selected microphone or speaker devices are not available

This commit is contained in:
misyaguziya
2025-03-22 17:20:26 +09:00
parent 863baddad0
commit 7a3a2cfe07

View File

@@ -396,9 +396,9 @@ class Model:
mic_device_list = device_manager.getMicDevices().get(mic_host_name, [{"name": "NoDevice"}]) mic_device_list = device_manager.getMicDevices().get(mic_host_name, [{"name": "NoDevice"}])
selected_mic_device = [device for device in mic_device_list if device["name"] == mic_device_name] selected_mic_device = [device for device in mic_device_list if device["name"] == mic_device_name]
if len(selected_mic_device) == 0: if len(selected_mic_device) == 0 or mic_device_name == "NoDevice":
return False fnc({"text": False, "language": None})
else:
self.mic_audio_queue = Queue() self.mic_audio_queue = Queue()
# self.mic_energy_queue = Queue() # self.mic_energy_queue = Queue()
@@ -531,9 +531,9 @@ class Model:
mic_device_list = device_manager.getMicDevices().get(mic_host_name, [{"name": "NoDevice"}]) mic_device_list = device_manager.getMicDevices().get(mic_host_name, [{"name": "NoDevice"}])
selected_mic_device = [device for device in mic_device_list if device["name"] == mic_device_name] selected_mic_device = [device for device in mic_device_list if device["name"] == mic_device_name]
if len(selected_mic_device) == 0: if len(selected_mic_device) == 0 or mic_device_name == "NoDevice":
return False self.check_mic_energy_fnc(False)
else:
def sendMicEnergy(): def sendMicEnergy():
if mic_energy_queue.empty() is False: if mic_energy_queue.empty() is False:
energy = mic_energy_queue.get() energy = mic_energy_queue.get()
@@ -562,12 +562,14 @@ class Model:
self.mic_energy_recorder = None self.mic_energy_recorder = None
def startSpeakerTranscript(self, fnc): def startSpeakerTranscript(self, fnc):
speaker_device_name = config.SELECTED_SPEAKER_DEVICE
speaker_device_list = device_manager.getSpeakerDevices() speaker_device_list = device_manager.getSpeakerDevices()
selected_speaker_device = [device for device in speaker_device_list if device["name"] == config.SELECTED_SPEAKER_DEVICE] selected_speaker_device = [device for device in speaker_device_list if device["name"] == speaker_device_name]
if len(selected_speaker_device) == 0:
return False
if len(selected_speaker_device) == 0 or speaker_device_name == "NoDevice":
fnc({"text": False, "language": None})
else:
speaker_audio_queue = Queue() speaker_audio_queue = Queue()
# speaker_energy_queue = Queue() # speaker_energy_queue = Queue()
speaker_device = selected_speaker_device[0] speaker_device = selected_speaker_device[0]
@@ -656,12 +658,13 @@ class Model:
if isinstance(fnc, Callable): if isinstance(fnc, Callable):
self.check_speaker_energy_fnc = fnc self.check_speaker_energy_fnc = fnc
speaker_device_name = config.SELECTED_SPEAKER_DEVICE
speaker_device_list = device_manager.getSpeakerDevices() speaker_device_list = device_manager.getSpeakerDevices()
selected_speaker_device = [device for device in speaker_device_list if device["name"] == config.SELECTED_SPEAKER_DEVICE] selected_speaker_device = [device for device in speaker_device_list if device["name"] == speaker_device_name]
if len(selected_speaker_device) == 0:
return False
if len(selected_speaker_device) == 0 or speaker_device_name == "NoDevice":
self.check_speaker_energy_fnc(False)
else:
def sendSpeakerEnergy(): def sendSpeakerEnergy():
if speaker_energy_queue.empty() is False: if speaker_energy_queue.empty() is False:
energy = speaker_energy_queue.get() energy = speaker_energy_queue.get()