-
Notifications
You must be signed in to change notification settings - Fork 1
VICS Development
We are developing a voice control interface for the AIDex system for assisting the ones in need in the the tetraplegia community.
We will be building a simple prototype based on the Alexea Skill Kit (ASK) using the Nodejs SDK. The Hello World Custom Skill will be used as the foundation.
For basic step-by-step instruction on how to built and test a custom skill, this tutorial is an excellent starting point.
You will need for the following account before developing any Alexea Custom Skills:
A simple single turn stateless interaction model will be used for the first prototype, and more complicated model will be incorporated as needed.
There we defines actions our users to be able to take.
{
"intents": [
{
"slots": [
{
"name": "System",
"type": "AIDEX_SYSTEMS"
}
],
"intent": "SystemIntent"
},
{
"slots": [
{
"name": "City",
"type": "AMAZON.US_CITY"
}
],
"intent": "WeatherIntent"
},
{
"slots": [
{
"name": "Temperature",
"type": "AMAZON.NUMBER"
}
],
"intent": "ClimateControlIntent"
},
{
"intent": "ClimateStatusIntent"
},
{
"slots": [
{
"name": "Status",
"type": "AIDEX_STATUS"
},
{
"name": "FanLevel",
"type": "AIDEX_FAN_LEVELS"
}
],
"intent": "FanControlIntent"
},
{
"slots": [
{
"name": "Status",
"type": "AIDEX_STATUS"
}
],
"intent": "FanStatusIntent"
},
{
"slots": [
{
"name": "PowerSelector",
"type": "AIDEX_POWER_SELECTORS"
},
{
"name": "Status",
"type": "AIDEX_STATUS"
}
],
"intent": "PowerStatusIntent"
},
{
"slots": [
{
"name": "PowerSelector",
"type": "AIDEX_POWER_SELECTORS"
},
{
"name": "Status",
"type": "AIDEX_STATUS"
}
],
"intent": "PowerControlIntent"
},
{
"slots": [
{
"name": "Status",
"type": "AIDEX_STATUS"
}
],
"intent": "LightStatusIntent"
},
{
"slots": [
{
"name": "Status",
"type": "AIDEX_STATUS"
},
{
"name": "LightLevel",
"type": "AIDEX_LIGHT_LEVELS"
}
],
"intent": "LightControlIntent"
},
{
"slots": [
{
"name": "DriveDirection",
"type": "AIDEX_DRIVE_DIRECTIONS"
},
{
"name": "DriveDegree",
"type": "AIDEX_DRIVE_DEGREES"
},
{
"name": "DriveSpeed",
"type": "AIDEX_DRIVE_SPEEDS"
}
],
"intent": "DriveControlIntent"
},
{
"intent": "DriveStatusIntent"
},
{
"intent": "AMAZON.StopIntent"
},
{
"intent": "AMAZON.CancelIntent"
},
{
"intent": "AMAZON.StartOverIntent"
},
{
"intent": "AMAZON.HelpIntent"
}
]
}Here is the preliminary Utterance/Intent set for the prototype.
SystemIntent {System} SystemIntent control {System} SystemIntent activate {System} SystemIntent open {System} SystemIntent start {System} SystemIntent close {System} SystemIntent stop {System}
ClimateStatusIntent what is the room temperature ClimateStatusIntent temperature
ClimateControlIntent set temperature to {Temperature} ClimateControlIntent set thermostat to {Temperature} ClimateControlIntent too cold ClimateControlIntent too warm
WeatherIntent how is the weather WeatherIntent how is the weather in {City} WeatherIntent weather
FanStatusIntent is the fan {Status} FanStatusIntent what is the fan level FanStatusIntent fan {Status} FanControlIntent turn the fan {Status} FanControlIntent set fan to level {FanLevel}
PowerStatusIntent is power {PowerSelector} {Status} PowerStatusIntent power status PowerStatusIntent what is the power status PowerControlIntent turn the power {PowerSelector} {Status} PowerControlIntent turn the power {PowerSelector} {Status}
LightStatusIntent is light {Status} LightStatusIntent light status LightStatusIntent what is the light status LightControlIntent turn the light {Status} LightControlIntent set light to level {LightLevel}
DriveControlIntent stop the drive DriveControlIntent start the drive DriveControlIntent go {DriveDirection} {DriveDegree} {DriveSpeed} DriveControlIntent set drive speed {DriveSpeed} DriveControlIntent turn around DriveControlIntent reverse DriveControlIntent stop DriveStatusIntent what is the drive speed
Here we are going to add some custom slots to make the dialogue more neutral.
- AIDEX_STATUS: on, off, unknown
- AIDEX_SYSTEMS: Climate Control, Fan Control, Power Control, Light Control, Drive Control
- AIDEX_FAN_LEVELS: 1, 2, 3
- AIDEX_POWER_SELECTORS: 1, 2, 3, 4
- AIDEX_LIGHT_LEVELS: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- AIDEX_DRIVE_DIRECTIONS: left, right, reverse
- AIDEX_DRIVE_DEGREES: 10 degrees, 20 degrees, 30 degrees, 40 degrees, 50 degrees, 60 degrees, 70 degrees, 80 degrees, 90 degrees
- AIDEX_DRIVE_SPEED: 1, 2, 3