👍️[Update] Controller : Deviceの自動変更処理を実装
This commit is contained in:
@@ -16,5 +16,5 @@ psutil==5.9.8
|
|||||||
pykakasi==2.3.0
|
pykakasi==2.3.0
|
||||||
pycaw==20240210
|
pycaw==20240210
|
||||||
translators @ git+https://github.com/misyaguziya/translators@5.9.2.1
|
translators @ git+https://github.com/misyaguziya/translators@5.9.2.1
|
||||||
SpeechRecognition @ git+https://github.com/misyaguziya/custom_speech_recognition@3.10.4
|
SpeechRecognition @ git+https://github.com/misyaguziya/custom_speech_recognition@3.10.4.1
|
||||||
tinyoscquery @ git+https://github.com/cyberkitsune/tinyoscquery@0.1.2
|
tinyoscquery @ git+https://github.com/cyberkitsune/tinyoscquery@0.1.2
|
||||||
@@ -426,13 +426,8 @@ class Model:
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def startMicTranscript(self, fnc):
|
def startMicTranscript(self, fnc):
|
||||||
if config.AUTO_MIC_SELECT is True:
|
mic_host_name = config.SELECTED_MIC_HOST
|
||||||
default_device = device_manager.getDefaultMicDevice()
|
mic_device_name = config.SELECTED_MIC_DEVICE
|
||||||
mic_host_name = default_device["host"]["name"]
|
|
||||||
mic_device_name = default_device["device"]["name"]
|
|
||||||
else:
|
|
||||||
mic_host_name = config.SELECTED_MIC_HOST
|
|
||||||
mic_device_name = config.SELECTED_MIC_DEVICE
|
|
||||||
|
|
||||||
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]
|
||||||
@@ -453,7 +448,7 @@ class Model:
|
|||||||
device=mic_device,
|
device=mic_device,
|
||||||
energy_threshold=config.MIC_THRESHOLD,
|
energy_threshold=config.MIC_THRESHOLD,
|
||||||
dynamic_energy_threshold=config.MIC_AUTOMATIC_THRESHOLD,
|
dynamic_energy_threshold=config.MIC_AUTOMATIC_THRESHOLD,
|
||||||
record_timeout=record_timeout,
|
phrase_time_limit=record_timeout,
|
||||||
)
|
)
|
||||||
# self.mic_audio_recorder.recordIntoQueue(self.mic_audio_queue, mic_energy_queue)
|
# self.mic_audio_recorder.recordIntoQueue(self.mic_audio_queue, mic_energy_queue)
|
||||||
self.mic_audio_recorder.recordIntoQueue(self.mic_audio_queue, None)
|
self.mic_audio_recorder.recordIntoQueue(self.mic_audio_queue, None)
|
||||||
@@ -560,13 +555,8 @@ class Model:
|
|||||||
if isinstance(fnc, Callable):
|
if isinstance(fnc, Callable):
|
||||||
self.check_mic_energy_fnc = fnc
|
self.check_mic_energy_fnc = fnc
|
||||||
|
|
||||||
if config.AUTO_MIC_SELECT is True:
|
mic_host_name = config.SELECTED_MIC_HOST
|
||||||
default_device = device_manager.getDefaultMicDevice()
|
mic_device_name = config.SELECTED_MIC_DEVICE
|
||||||
mic_host_name = default_device["host"]["name"]
|
|
||||||
mic_device_name = default_device["device"]["name"]
|
|
||||||
else:
|
|
||||||
mic_host_name = config.SELECTED_MIC_HOST
|
|
||||||
mic_device_name = config.SELECTED_MIC_DEVICE
|
|
||||||
|
|
||||||
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]
|
||||||
@@ -620,7 +610,7 @@ class Model:
|
|||||||
device=speaker_device,
|
device=speaker_device,
|
||||||
energy_threshold=config.SPEAKER_THRESHOLD,
|
energy_threshold=config.SPEAKER_THRESHOLD,
|
||||||
dynamic_energy_threshold=config.SPEAKER_AUTOMATIC_THRESHOLD,
|
dynamic_energy_threshold=config.SPEAKER_AUTOMATIC_THRESHOLD,
|
||||||
record_timeout=record_timeout,
|
phrase_time_limit=record_timeout,
|
||||||
)
|
)
|
||||||
# self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue)
|
# self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, speaker_energy_queue)
|
||||||
self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, None)
|
self.speaker_audio_recorder.recordIntoQueue(speaker_audio_queue, None)
|
||||||
|
|||||||
@@ -91,10 +91,12 @@ class SelectedSpeakerEnergyRecorder(BaseEnergyRecorder):
|
|||||||
# self.adjustForNoise()
|
# self.adjustForNoise()
|
||||||
|
|
||||||
class BaseEnergyAndAudioRecorder:
|
class BaseEnergyAndAudioRecorder:
|
||||||
def __init__(self, source, energy_threshold, dynamic_energy_threshold, record_timeout):
|
def __init__(self, source, energy_threshold, dynamic_energy_threshold, phrase_time_limit, phrase_timeout, record_timeout):
|
||||||
self.recorder = Recognizer()
|
self.recorder = Recognizer()
|
||||||
self.recorder.energy_threshold = energy_threshold
|
self.recorder.energy_threshold = energy_threshold
|
||||||
self.recorder.dynamic_energy_threshold = dynamic_energy_threshold
|
self.recorder.dynamic_energy_threshold = dynamic_energy_threshold
|
||||||
|
self.phrase_time_limit = phrase_time_limit
|
||||||
|
self.phrase_timeout = phrase_timeout
|
||||||
self.record_timeout = record_timeout
|
self.record_timeout = record_timeout
|
||||||
self.stop = None
|
self.stop = None
|
||||||
|
|
||||||
@@ -117,20 +119,29 @@ class BaseEnergyAndAudioRecorder:
|
|||||||
self.stop, self.pause, self.resume = self.recorder.listen_energy_and_audio_in_background(
|
self.stop, self.pause, self.resume = self.recorder.listen_energy_and_audio_in_background(
|
||||||
source=self.source,
|
source=self.source,
|
||||||
callback=audioRecordCallback,
|
callback=audioRecordCallback,
|
||||||
phrase_time_limit=self.record_timeout,
|
phrase_time_limit=self.phrase_time_limit,
|
||||||
callback_energy=energyRecordCallback if energy_queue is not None else None)
|
callback_energy=energyRecordCallback if energy_queue is not None else None,
|
||||||
|
phrase_timeout=self.phrase_timeout,
|
||||||
|
record_timeout=self.record_timeout)
|
||||||
|
|
||||||
class SelectedMicEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder):
|
class SelectedMicEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder):
|
||||||
def __init__(self, device, energy_threshold, dynamic_energy_threshold, record_timeout):
|
def __init__(self, device, energy_threshold, dynamic_energy_threshold, phrase_time_limit, phrase_timeout:int=1, record_timeout:int=5):
|
||||||
source=Microphone(
|
source=Microphone(
|
||||||
device_index=device['index'],
|
device_index=device['index'],
|
||||||
sample_rate=int(device["defaultSampleRate"]),
|
sample_rate=int(device["defaultSampleRate"]),
|
||||||
)
|
)
|
||||||
super().__init__(source=source, energy_threshold=energy_threshold, dynamic_energy_threshold=dynamic_energy_threshold, record_timeout=record_timeout)
|
super().__init__(
|
||||||
|
source=source,
|
||||||
|
energy_threshold=energy_threshold,
|
||||||
|
dynamic_energy_threshold=dynamic_energy_threshold,
|
||||||
|
phrase_time_limit=phrase_time_limit,
|
||||||
|
phrase_timeout=phrase_timeout,
|
||||||
|
record_timeout=record_timeout,
|
||||||
|
)
|
||||||
# self.adjustForNoise()
|
# self.adjustForNoise()
|
||||||
|
|
||||||
class SelectedSpeakerEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder):
|
class SelectedSpeakerEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder):
|
||||||
def __init__(self, device, energy_threshold, dynamic_energy_threshold, record_timeout):
|
def __init__(self, device, energy_threshold, dynamic_energy_threshold, phrase_time_limit, phrase_timeout:int=1, record_timeout:int=5):
|
||||||
|
|
||||||
source = Microphone(speaker=True,
|
source = Microphone(speaker=True,
|
||||||
device_index= device["index"],
|
device_index= device["index"],
|
||||||
@@ -138,5 +149,12 @@ class SelectedSpeakerEnergyAndAudioRecorder(BaseEnergyAndAudioRecorder):
|
|||||||
chunk_size=get_sample_size(paInt16),
|
chunk_size=get_sample_size(paInt16),
|
||||||
channels=device["maxInputChannels"]
|
channels=device["maxInputChannels"]
|
||||||
)
|
)
|
||||||
super().__init__(source=source, energy_threshold=energy_threshold, dynamic_energy_threshold=dynamic_energy_threshold, record_timeout=record_timeout)
|
super().__init__(
|
||||||
|
source=source,
|
||||||
|
energy_threshold=energy_threshold,
|
||||||
|
dynamic_energy_threshold=dynamic_energy_threshold,
|
||||||
|
phrase_time_limit=phrase_time_limit,
|
||||||
|
phrase_timeout=phrase_timeout,
|
||||||
|
record_timeout=record_timeout,
|
||||||
|
)
|
||||||
# self.adjustForNoise()
|
# self.adjustForNoise()
|
||||||
Reference in New Issue
Block a user