aboutsummaryrefslogtreecommitdiffstats
path: root/agl_service_voiceagent/protos/voice_agent.proto
diff options
context:
space:
mode:
authorMalik Talha <talhamalik727x@gmail.com>2023-09-14 22:41:26 +0500
committerMalik Talha <talhamalik727x@gmail.com>2023-09-25 00:40:38 +0500
commita10c988b5480ca5b937a2793b450cfa01f569d76 (patch)
tree23c032557a36afd671c7b7db9d6dd843253ae835 /agl_service_voiceagent/protos/voice_agent.proto
parent3e300cdc7fff19e5f338b282266444061f74506e (diff)
Add gRPC-based voice agent service for AGL
Introducing a gRPC-based voice agent service for Automotive Grade Linux (AGL) that leverages GStreamer, Vosk, Snips, and RASA. It seamlessly processes user voice commands, converting spoken words to text, extracting intents, and performing actions via the Kuksa interface (WIP). Bug-AGL: SPEC-4906 Signed-off-by: Malik Talha <talhamalik727x@gmail.com> Change-Id: I47e61c66149c67bb97fecc745e4c3afd79f447a5
Diffstat (limited to 'agl_service_voiceagent/protos/voice_agent.proto')
-rw-r--r--agl_service_voiceagent/protos/voice_agent.proto82
1 files changed, 82 insertions, 0 deletions
diff --git a/agl_service_voiceagent/protos/voice_agent.proto b/agl_service_voiceagent/protos/voice_agent.proto
new file mode 100644
index 0000000..8ee8324
--- /dev/null
+++ b/agl_service_voiceagent/protos/voice_agent.proto
@@ -0,0 +1,82 @@
+syntax = "proto3";
+
+
+service VoiceAgentService {
+ rpc CheckServiceStatus(Empty) returns (ServiceStatus);
+ rpc DetectWakeWord(Empty) returns (stream WakeWordStatus);
+ rpc RecognizeVoiceCommand(stream RecognizeControl) returns (RecognizeResult);
+ rpc ExecuteVoiceCommand(ExecuteInput) returns (ExecuteResult);
+}
+
+
+enum RecordAction {
+ START = 0;
+ STOP = 1;
+}
+
+enum NLUModel {
+ SNIPS = 0;
+ RASA = 1;
+}
+
+enum RecordMode {
+ MANUAL = 0;
+ AUTO = 1;
+}
+
+enum RecognizeStatusType {
+ REC_ERROR = 0;
+ REC_SUCCESS = 1;
+ REC_PROCESSING = 2;
+ VOICE_NOT_RECOGNIZED = 3;
+ INTENT_NOT_RECOGNIZED = 4;
+}
+
+enum ExecuteStatusType {
+ EXEC_ERROR = 0;
+ EXEC_SUCCESS = 1;
+ KUKSA_CONN_ERROR = 2;
+ INTENT_NOT_SUPPORTED = 3;
+ INTENT_SLOTS_INCOMPLETE = 4;
+}
+
+
+message Empty {}
+
+message ServiceStatus {
+ string version = 1;
+ bool status = 2;
+}
+
+message WakeWordStatus {
+ bool status = 1;
+}
+
+message RecognizeControl {
+ RecordAction action = 1;
+ NLUModel nlu_model = 2;
+ RecordMode record_mode = 3;
+ string stream_id = 4;
+}
+
+message IntentSlot {
+ string name = 1;
+ string value = 2;
+}
+
+message RecognizeResult {
+ string command = 1;
+ string intent = 2;
+ repeated IntentSlot intent_slots = 3;
+ string stream_id = 4;
+ RecognizeStatusType status = 5;
+}
+
+message ExecuteInput {
+ string intent = 1;
+ repeated IntentSlot intent_slots = 2;
+}
+
+message ExecuteResult {
+ ExecuteStatusType status = 1;
+}