aboutsummaryrefslogtreecommitdiffstats
path: root/agl_service_voiceagent/servicers/voice_agent_servicer.py
diff options
context:
space:
mode:
Diffstat (limited to 'agl_service_voiceagent/servicers/voice_agent_servicer.py')
-rw-r--r--agl_service_voiceagent/servicers/voice_agent_servicer.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/agl_service_voiceagent/servicers/voice_agent_servicer.py b/agl_service_voiceagent/servicers/voice_agent_servicer.py
index 2a4de33..c149b6d 100644
--- a/agl_service_voiceagent/servicers/voice_agent_servicer.py
+++ b/agl_service_voiceagent/servicers/voice_agent_servicer.py
@@ -199,6 +199,7 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
version=self.service_version,
status=True,
wake_word=self.wake_word,
+ online_mode = self.online_mode
)
# Convert the response object to a JSON string and log it
@@ -280,8 +281,12 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
"recorder": recorder,
"audio_file": audio_file
}
-
- recorder.start_recording()
+
+ def record():
+ recorder.start_recording()
+
+ record_thread = threading.Thread(target=record)
+ record_thread.start()
elif request.action == voice_agent_pb2.STOP:
stream_uuid = request.stream_id
@@ -294,6 +299,7 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
recorder = self.rvc_stream_uuids[stream_uuid]["recorder"]
audio_file = self.rvc_stream_uuids[stream_uuid]["audio_file"]
del self.rvc_stream_uuids[stream_uuid]
+ print(use_online_mode)
recorder.stop_recording()
@@ -316,12 +322,19 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
recognizer_uuid = self.stt_model.setup_vosk_recognizer()
stt = self.stt_model.recognize_from_file(recognizer_uuid, audio_file,stt_framework=stt_framework)
used_kaldi = True
-
print(stt)
if stt not in ["FILE_NOT_FOUND", "FILE_FORMAT_INVALID", "VOICE_NOT_RECOGNIZED", ""]:
if request.nlu_model == voice_agent_pb2.SNIPS:
- extracted_intent = self.snips_interface.extract_intent(stt)
- intent, intent_actions = self.snips_interface.process_intent(extracted_intent)
+ try:
+ extracted_intent = self.snips_interface.extract_intent(stt)
+ except Exception as e:
+ print(e)
+ extracted_intent = ""
+ if extracted_intent != "":
+ intent, intent_actions = self.snips_interface.process_intent(extracted_intent)
+ else:
+ intent = ""
+ intent_actions = {}
if not intent or intent == "":
status = voice_agent_pb2.INTENT_NOT_RECOGNIZED
@@ -346,14 +359,12 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
status = voice_agent_pb2.NLU_MODEL_NOT_SUPPORTED
else:
- stt = ""
status = voice_agent_pb2.VOICE_NOT_RECOGNIZED
# cleanup the kaldi recognizer
if used_kaldi:
self.stt_model.cleanup_recognizer(recognizer_uuid)
used_kaldi = False
-
# delete the audio file
if not self.store_voice_command:
delete_file(audio_file)
@@ -516,7 +527,7 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
exec_response = "Uh oh, I failed to stop the media."
exec_status = voice_agent_pb2.EXEC_ERROR
else:
- exec_response = "Sorry, I failed to execute command against intent 'MediaControl'. Maybe try again with more specific instructions."
+ exec_response = "Sorry, I failed to execute command."
exec_status = voice_agent_pb2.EXEC_ERROR
@@ -572,7 +583,7 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
if "value" in execution_item:
value = execution_item["value"]
if self.set_current_values(signal, value):
- exec_response = f"Yay, I successfully updated the intent '{intent}' to value '{value}'."
+ exec_response = f"Yay, I successfully updated '{intent}' to value '{value}'."
exec_status = voice_agent_pb2.EXEC_SUCCESS
elif "factor" in execution_item:
@@ -593,7 +604,7 @@ class VoiceAgentServicer(voice_agent_pb2_grpc.VoiceAgentServiceServicer):
value = current_value - factor
value = str(value)
if self.set_current_values(signal, value):
- exec_response = f"Yay, I successfully updated the intent '{intent}' to value '{value}'."
+ exec_response = f"Yay, I successfully updated '{intent}' to value '{value}'."
exec_status = voice_agent_pb2.EXEC_SUCCESS
else: