Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Provides an interface primarily for the core afb-voiceservice-highlevel to listen for wakeword detection events and make request routing decisions.
  • This binding will internally talk to or host voice assistant vendor specific wake word solutions to enable the wake word detection.


Voice Agent Vendor Software

1) voice-agent-binding

  • The API specification of voice agent is defined in this document. All the vendor specific voice agent bindings will follow the same specific to integrate with the high level voice service.
  • Voice Agent will listen to audio input when instructed by the high level voice service.
  • Voice Agent will run its own automatic speech recognition, natural language processing, generates intents to perform requested action.
  • Voice Agent will have its own authentication, connection and dialog management flows. And generates events to notify the high level voice service of its state transitions.
  • Voice Agent will use the high level voice service's interaction manager to command system applications to perform tasks, like Route to a specific geo code, Dial a Number, Play music etc.

API


Code Block
languagecpp
titlevoiceagent/setup
collapsetrue
voiceagent/setup

This API is exposed to high level voice service to pass any setup or high level config information like agent_id to the voice agent.

"permission": "urn:AGL:permission:speech:public:accesscontrol"

Request:
{ 
  "agent_id":"integer"
  "language":"string"
}


Responses:
{
  "jtype":"afb-reply",
  "request":{
    "status":"string" // success or bad-state or bad-request
  }
}

...

Code Block
languagecpp
titlevoiceagent/startListening
collapsetrue
voiceagent/startListening

Start the listening for speech input. As a part of request, common configuration related information is passed.
Note: The config inputs below are just examples and not the final list of configurations.

"permission": "urn:AGL:permission:speech:public:audiocontrol"
Request:
{
  "request_id": "string" // Request ID assigned by the high level voice service.
  "language":"string"
  "location":"string"
  "preferred_network_mode":"string" // online, offline, hybrid
  "audio_input_device": "string" // ID of the alsa device to read the input
}


Responses:
{
  "jtype":"afb-reply",
  "request":{
    "status":"string" // success or bad-state or bad-request
  }
}



Events


Code Block
languagecpp
titlevoiceagent_endofspeechdetected_event
collapsetrue
Voice agent will notify its clients that end of speech is detected.
Event Data:
{
  "name" : "voiceagent_endofspeechdetected_event"
  "agent_id": "integer"
  "request_id": "integer" // the request for which the end of speech is detected
}

...

Climate Control (CC)

Use cases




1

CC - on/off

Turn on or off the climate control

(e.g. turn off climate control)

2

CC - specific temperature

Set the car's temperature to 70 degrees

(e.g. set the temperature to 70)

3

CC.- target range

Set the car's heating to a set gradient

(e.g. set the heat to high)

4

CC - min / max temperature

Set the car's temperature to max or min A/C (or heat)

(e.g. set the A/C to max)

5

CC - increase / decrease temperature

Increase or decrease the car's temperature

(e.g. increase the temperature)

6CC - specific fan speed

Set the fan to a specific value

(e.g. set the fan speed to 3)

7CC - target range

Set the fan to a specific value

(e.g. set the fan speed to high)

8CC - min / max fan speed

Set the fan to min / max

(e.g. set the fan to max)

9CC - increase / decrease fan speed

Increase / decrease the fan speed

(e.g. increase the air flow)

10CC - Temp Status

What is the current temperature of the car

(e.g. how hot is it in my car?)

11CC - Fan Status

Determine the fan setting

(e.g. what's the fan set to?)


Set the cabin temperature

...

how hot is it in my car?


Navigation

Use cases




1Set Destination

Notify the navigation application to route to specified destination.

For e.g

"Navigate to nearest star bucks"

"Navigate to my home"

2Cancel Navigation

Cancel the navigation based on touch input or voice.

For e.g

User can say "cancel navigation"

User can cancel the navigation by interacting with the navigation application directly on the device using Touch inputs.

3Suggest Alternate Route

Suggest an alternate route to the user and proceed as per user preference.

For e.g.

"There is an alternate route available that is 4 minutes faster, Do you wish to select?"

When user says "No", then continue navigation

when user says "Yes", then proceed with navigation.


Set Destination


Cancel Navigation

...