Finally All Down for AWS (for now) …
Continuing on my AWS journey with the last AWS certification, I took another step by clearing the AWS Certified Alexa Skill Builder – Specialty (AXS-C01) certification. It is amazing to know and learn how Voice first experiences are making an impact and changing how we think about technology and use cases.
AWS Certified Alexa Skill Builder – Specialty (AXS-C01) exam basically validates your ability to build, test, publish and certify Alexa skills.
AWS Certified Alexa Skill Builder – Specialty (AXS-C01) Exam Summary
- AWS Certified Alexa Skill Builder – Specialty exam focuses only on Alexa and how to build skills.
- AWS Certified Alexa Skill Builder – Specialty exam has 65 questions with a time limit of 170 minutes
- Compared to the other professional and specialty exams, the question and answers are not long and similar to associate exams. So if you are prepared well, it should not need the 170 minutes.
- As the exam was online from home, there was no access to paper and pen but the trick remains the same, read the question and draw a rough architecture and focus on the areas that you need to improve. Trust me, you will be able to eliminate 2 answers for sure and then need to focus on only the other two. Read the other 2 answers to check the difference area and that would help you reach to the right answer or atleast have a 50% chance of getting it right.
Are you looking for a job? Visit Jooble!
AWS Certified Alexa Skill Builder – Specialty (AXS-C01) Exam Topic Summary
Refer AWS Alexa Cheat Sheet
Domain 1: Voice-First Design Practices and Capabilities
1.1 Describe how users interact with skills
1.2 Map features and capabilities to use cases
- Alexa supports display cards to display text (Simple card) and text with image (Standard card)
- Alexa Alexa Skill Kits supports APIs
- Alexa Settings APIs allow developers to retrieve customer preferences for the settings like time zone, distance measuring unit, and temperature measurement unit
- Device services – a skill can request the customer’s permission to their address information, which is a static data filled by customer and includes the country/region, postal code and full address
- Customer Profile services – a skill can request the customer’s permission to their contact information, which includes name, email address and phone number
- With Location services, a skill can ask a user’s permission to obtain the real-time location of their Alexa-enabled device, specifically at the time of the user’s request to Alexa, so that the skill can provide enhanced services.
- Alexa Skill Kit APIs need
apiAccessToken
anddeviceId
to access the ASK APIs - Progressive Response API allows you to keep the user engaged while the skill prepares a full response to the user’s request.
- Personalization can be provided using
userId
and state persistence
Domain 2: Skill Design
2.1 Design and develop an interaction model
- Alexa interaction model includes skill, Invocation name, utterances, slots, Intents
- A skill is ‘an app for Alexa’, however they are not downloadable but just need to be enabled.
- Wakeword – Amazon offers a choice of wakewords like ‘Alexa’, ‘Amazon’, ‘Echo’, ‘skill’, ‘app’ or ‘Computer’, with the default being ‘Alexa’.
- Launch phrases include “run,” “start,” “play,” “resume,” “use,” “launch,” “ask,” “open,” “tell,” “load,” “begin,” and “enable.”
- Connecting words include “to,” “from,” “in,” “using,” “with,” “about,” “for,” “that,” “by,” “if,” “and,” “whether.”
- Invocation name
- is the word or phrase used to trigger the skill for custom skills and the invocation name should adhere to the requirements
- must not infringe upon the intellectual property rights of an entity or person
- must be compound of two or more works.
- One-word invocation names are allowed only for brand/intellectual property.
- must not include names of people or places
- if two-word invocation names, one of the words cannot be a definite article (“the”), indefinite article (“a”, “an”) or preposition (“for”, “to”, “of,” “about,” “up,” “by,” “at,” “off,” “with”).
- must not contain any of the Alexa skill launch phrases, connecting words and wake words
- must contain only lower-case alphabetic characters, spaces between words, and possessive apostrophes
- must spell characters like numbers for e.g., twenty one
- can have periods in the invocation names containing acronyms or abbreviations that are pronounced as a series of individual letters, for e.g. NASA as n. a. s. a.
- cannot spell out phonemes for e.g., a skill titled “AWS Facts” would need “AWS” represented as “a. w. s. ” and NOT “ay double u ess.”
- must not create confusion with existing Alexa features.
- must be written in each supported language
- An intent is what a user is trying to accomplish.
- Amazon provides standard built-in intents which can be extended
- Intents need to have a unique utterance
- Utterances are the specific phrases that people will use when making a request to Alexa.
- A slot is a variable that relates to an intent allowing Alexa to understand information about the request
- Amazon provides standard built-in slots which can be extended
- Entity resolution improves the way Alexa matches possible slot values in a user’s utterance with the slots defined in your interaction model
2.2 Design a multi-turn conversation
- Alexa Dialog management model identifies the prompts and utterances to collect, validate, and confirm the slot values and intents.
- Alexa supports
- Auto Delegation where Alexa completes all of the dialog steps based on the dialog model.
- Manual delegation using
Dialog.Delegate
where Alexa sends the skill anIntentRequest
for each turn of the conversation and provides more flexibility.
- AMAZON.FallbackIntent will not be triggered in the middle of a dialog
2.3 Use built-in intents and slots
- Standard built-in intents cannot include any slots. If slots are needed, create a custom intent and write your own sample utterances.
- Alexa recommends using and extending standard built-in intents like
Alexa.HelpIntent
,Alexa.YesIntent
with additional utterances as per the skill requirements - Alexa provides
Alexa.FallbackIntent
for handling any unmatched utterances and can be used to improve the interaction model accuracy. - Standard built-in intents cannot include any slots. If slots are needed, create a custom intent and write your own sample utterances.
- Alexa provides slot which helps capture variables and can be either be a Amazon predefined slot such as dates, numbers, durations, time, etc. or a custom one specific to the skill
- Predefined slots can be extended to add additional values
2.4 Handle unexpected conversational requests or responses
- Alexa provides
Alexa.FallbackIntent
for handling any unmatched utterances and can be used to improve the interaction model accuracy. - Alexa also provides Intent History which provides a consolidate view with aggregated, anonymized frequent utterances and the resolved intents. These can be used to map the utterances to correct intents
2.5 Design multi-modal skills using one or more service interfaces (for example, audio, video, and gadgets)
- Alexa enabled devices with a screen handles Page and Scroll intents. Do not handle Next and Previous.
- Alexa skill with AudioPlayer interface
- must handle
AMAZON.ResumeIntent
andAMAZON.PauseIntent
- PlaybackController events to track AudioPlayer status changes initiated from the device buttons
- must handle
Domain 3: Skill Architecture
3.1 Identify AWS services for extending Alexa skill functionality (Amazon CloudFront, Amazon S3, Amazon CloudWatch, and Amazon DynamoDB)
- Focus on standard skill architecture using Lambda for backend, DynamoDB for persistence, S3 for severing static assets, and CloudWatch for monitoring and logs.
- Lambda provide serverless handling for the Alexa requests, but remember the following limits
- default concurrency soft limit of 1000 can be increased by raising a support request
- default timeout of 3 secs, and should be increased to atleast 7 secs to be inline with Alexa timeout of 8 secs
- default memory of 128mb, increase to improve performance
- S3 performance can be improved by exposing it through CloudFront esp. for images, audio and video files
3.2 Use AWS Lambda to build Alexa skills
- Lambda integrates with CloudWatch to provide logs and should be the first thing to check in case of any issues or errors.
- Alexa allows any http endpoint to act as a backend, but needs to meet following requirements
- must be accessible over the internet.
- must accept HTTP requests on port 443.
- must support HTTP over SSL/TLS, using an Amazon-trusted certificate.
3.3 Follow AWS and Alexa security and privacy best practices
- Alexa requires the backend to verify that incoming requests come from Alexa using Skill ID verification
- Child-directed skills cannot use personal and location information
- Skills cannot be used to capture health information
- Alexa Skills Kit uses the OAuth 2.0 authentication framework for Account linking, which defines a means by which the service can allow Alexa, with the user’s permission, to access information from the account that the user has set up with you.
- Alexa smart home skills must have OAuth authorization code grant implementation while custom skills can have authorization code grant or impact grant implementation.
Domain 4: Skill Development
4.1 Implement in-skill purchasing and Amazon Pay for Alexa Skills
- In-skill purchasing enables selling premium content such as game features and interactive stories in skills with a custom interaction model.
- In-skill purchasing is handled by Alexa when the skill sends a
Upsell
directive. As the skill session ends when aUpsell
directive is sent, be sure to save any relevant user data in a persistent data store so that the skill can continue where the user left off after the purchase flow is completed and the endpoint is back in control of the user experience. - Skill can handle the
Connections.Response
request that indicates the result of a purchase flow and resume the skill
4.2 Use Speech Synthesis Markup Language (SSML) for expression and MP3 audio
- SSML is a markup language that provides a standard way to mark up text for the generation of synthetic speech.
- Alexa supports a subset of SSML tags including
say-as
to interpret text as telephone, date, time etc.phoneme
provides a phonemic/phonetic pronunciationprosody
modifies the volume, pitch, and rate of the tagged speech.audio
allows playing MP3 player while rendering a response- must be in valid MP3 file (MPEG version 2) format
- must be hosted at an Internet-accessible HTTPS endpoint.
- For speech response, the audio file cannot be longer than 240 seconds.
- combined total time for all audio files in the outputSpeech property of the response cannot be more than 240 seconds.
- combined total time for all audio files in the reprompt property of the response cannot be more than 90 seconds.
- bit rate must be 48 kbps.
- sample rate must be 22050Hz, 24000Hz, or 16000Hz.
4.3 Implement state management
- Alexa Skill state persistence can be handled using session attributes during the session and externally using services like DynamoDB, RDS across sessions.
4.4 Implement Alexa service interfaces (audio player, video player, and screens)
4.5 Parse Alexa JSON requests and provide responses
- All requests include the
session
(optional),context
, andrequest
objects at the top level.-
session
object provides additional context associated with the request.
session attributes
can be used to store datauser
containinguserId
to uniquely define an user andaccessToken
to access other services.
-
context
object provides the skill with information about the current state of the Alexa service and device at the time the request is sent to the service.system
object providesapiAccessToken
anddevice
object providesdeviceId
to access ASK APIsapplication
provideapplicationId
device
object providessupportedInterfaces
to list each interface that the device supportsuser
containinguserId
to uniquely define an user andaccessToken
to access other services.
- A
request
object that provides the details of the user’s request.
-
- Response includes
outputSpeech
contains the speech to render to the user.reprompt
contains the outputSpeech to use if a re-prompt is necessary.shouldEndSession
provides a boolean value that indicates what should happen after Alexa speaks the response.
Domain 5: Test, Validate, and Troubleshoot
5.1 Debug and troubleshoot using Amazon CloudWatch or other tools
- Lambda integrates with CloudWatch for metric and logs and can be check for any errors and metrics.
5.2 Use the Alexa developer testing tools
- Utterance profiles – test utterances to know what intent they resolve to
- Alexa Skill simulator
- provides an ability to Interact with Alexa with either your voice or text, without an actual device.
- maintains the skill session, so the interaction model and dialog flow can be tested.
- supports multiple languages testing by selecting locale
- has limitations in testing audio, video, Alexa settings and Device API
- Manual Json
- enter a JSON request directly and see the skill returned JSON response
- does not maintain the skill session and is similar to testing a JSON request in the Lambda console.
- Voice & Tone – enter plain text or SSML and hear how Alexa speaks the text in a selected language
- Alexa device – test with an Alexa-enabled device.
- Alexa app – test the skill with the Alexa app for Android/iOS
- Lambda Test console – to test Lambda functions
5.3 Perform beta testing
- Skill beta testing tool can be used to test the Alexa skill in beta before releasing it to production
- Beat testing allows testing changes to an existing skill, while still keeping the currently live version of the skill available for the general public.
- Members can be invited using their Alexa email address. Alexa device used by the beta tester must be associated with the email address in the tester’s invitation.
5.4 Troubleshoot errors in the interaction model
Domain 6: Publishing, Operations, and Lifecycle Management
6.1 Describe the skill publishing process
- Alexa skill needs to go through certification process before the Skill is live and made available to the users
- Alexa creates an in development version of the skill, once the skill becomes live
- Alexa Skill live version cannot be edited, and it is recommended to edit the in development skill, test and then re-certify for publishing.
- Backend changes like changes in Lambda functions or response output from the function, however, can be made on live version and do not require re-certification. However, it is recommended to use Lambda versioning or alias to do such changes.
- Alexa for Business allows skill to be made private and available to select users within the company
6.2 Add and remove users in the developer console
- Alexa Skill Developer console access can be shared across multiple users for collaboration
- Administrator and Analyst roles will also have access to the Earnings and Payments sections.
- Administrator and Marketer roles will also have access to edit the content associated with apps (i.e. Descriptions, Images & Multimedia) and IAPs
- Administrator and Developer roles will have access to create, modify and delete Alexa skills using ASK CLI and SMAPI.
- Administrator, Analyst and Marketer roles have access to sales report
6.3 Perform analysis of skill analytics in the developer console
- Intent History – View aggregated, anonymized frequent utterances and the resolved intents. You cannot track the user intent history as they are anonymized.
- Actions – Unique customers per action, total actions, and total utterances per action.
- Customers – Total number of unique customers who accessed the skill.
- Intents – Unique customers per intent, total utterances per intent, total intents, and failed intents.
- Interaction Path – Paths users take when interacting with the skill.
- Plays Total number of times that a user played the skill content.
- Retention (live skills only) Usage of the skill over time by groups of customers or cohorts. View the number or percentage of customers who returned to your skill over a 12-week period.
- Sessions Total sessions, successful session types (sessions that didn’t end due to an error), average sessions per customer. Includes a breakdown of successful, failed, and no-response sessions as a percentage of total sessions. Custom
- Utterances Metrics for utterances depend on the skill category.
6.4 Differentiate among the statuses/versions of skills (for example, In Development, In Certification, and Live)
- In Development – skill available for development, testing
- In Review – A certification review is in progress and the skill cannot be edited
- Certified – Skill passed certification review, and is not yet available to users
- Live – skill has been published and is available to users. You cannot edit the configuration for live skills
- Hidden – skill was previously published, but has since been hidden. Existing users can access the skill. New users cannot discover the skill.
- Removed – skill was previously published, but has since been removed. Users cannot enable or use the skill.
AWS Certified Alexa Skill Builder – Specialty (AXS-C01) Exam Resources
- Online Courses
- ACloud Guru – AWS Certified Alexa Skill Builder – Specialty 2020 quite a comprehensive course.
- Practice tests