[fix] Model: Handle cases where selected microphone or speaker devices are not available
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user