Versions Compared

Key

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

...

ModuleArtifact NamePurposeLocationOwned by
AVS SDK


wpe-alexa-lib.bbBuild support for AVS Device SDKCMF HostedRDKM
avs-device-sdkSource code for AVS Device SDKhttps://github.com/aws/aws-sdk-cppAmazon
RDK Skill Mapperskillmapper.bbBuild support for skill mapper moduleCMF HostedRDKM
alexa_skill_mapper

RDK component to:

  • map VSK and custom skill responses with Thunder RPC
  • Handle state notification
  • Communicate between CPE and lambda service
CMF HostedRDKM
AWS SDKaws-cpp-sdk.bbBuild support for AWS CPP SDK moduleCMF HostedRDKM
aws-cpp-sdkProvides APIS to integrate AWS services such as SQS, Lambda, cognito etc. to RDK client devices.https://github.com/aws/aws-sdk-cppAmazon
KWD Detectorpryonlite_2.3.0.bbBuild support for Amazon KWD engine.CMF HostedRDKM

PryonLite pre-built libraryProvides a Wake Word Engine that can be used with the Alexa plugin. This is useful for devices with far-field/microphone.Distributed by AmazonAmazon
AVS Pluginwpeframework-plugins.bbBuild support for the Amazon voice thunder pluginHosted in rdkcentral GitHubRDKM
AVS pluginAmazon voice thunder plugin for Alexa service, uses AVS SDK & smart screen SDK APIS as part of the implementationHosted in Metrological GitHubMetrological
Lambda Demo codelambda-code.zipReference implementation for receiving video skill directives from alexa and routing it to the RDK device. Uses lambda & SQS services.Distributed by AmazonAmazon

Platform status

...

Wake-Word-Engine

(Supported)

...

Traffic Light LEDs

...

Integrated

...

RDK Accelerator

...

Integrated

Feature List & Custom Skill

...

Feature List & Custom Skill

FeatureHandlerHow to?
General skillsAlexaAudio will be played for generic skills such as time, news and weather
YoutubeAlexa → CobaltVoice command will be routed to Thunder
App LaunchAlexa → UXVoice command will be routed to Thunder
Google searchAlexa → UXInteractive command handled by Alexa and routed to Thunder
Player controlsAlexa → AppPlay/pause/back commands routed to app

Video Skill

Please refer to below page on integrating the Alexa Video Skill Kit with RDK

Integrating Alexa Video Skill Kit with RDK

Build instructions

The build instructions are mentioned by taking RaspberryPi as an example but should be almost similar for other platforms.

Build Instructions to run Alexa from AVS Plugin

Code Block
1. Initialize and download the code base

Video Skill

Please refer to below page on integrating the Video Skill Kit APIs with RDK

Integrating Alexa Video Skill Kit with RDK

Build instructions

The build instructions are mentioned by taking RaspberryPi as an example but should be almost similar for other platforms.

Build Instructions for AVS Plugin

Code Block
1. Initialize and download the code base
 - Example for RaspberryPi:
 $ repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-nosrc.xml -b thunder-next
 $ repo sync

2. Download the meta-rdk-voice layer in project root
 $ git clone https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-voice

3. Enable the below DISTRO feature to build AVS plugin
 $ vi meta-rdk-voice/conf/layer.conf
 - enable the below commented line
 #DISTRO_FEATURES_append = " alexa-plugin"
4. Optionally if wanted to use MIC based implementation (Ignore if using BLE voice remote)
 $ vi meta-rdk-voice/conf/layer.conf
 - enable the below commented line
 #DISTRO_FEATURES_append = " alexa_ffv"

5. To use pryon lite KWD engine (source use pryon lite KWD engine for devices with MIC input
Note: Source code need to be obtained from amazon separately)
 a. Set the KWD support flag to "ON" in meta-rdk-voice/recipes-wpe/wpeframework/include/avs.inc
 b. include the KWD detector recipe to build.
 - enable the commented line
#PREFERRED_PROVIDER_virtual/alexa-kwd-detector = "pryonlite"

 # Please follow the steps mentioned in section #3.2 to enable USB audio kernel parameters (Not required for RaspberryPI).

5. Optionally For the external source builds (such as some Broadcom platforms) add below line in manifest/auto.conf
 - In <Manifest>.xml
   <project name="components/generic/avs/alexa_skill_mapper" revision="rdk-next"/>
 - In auto.conf (where brcmexternalsrc is enabled)
   BRCMEXTERNALSRC_pn-wpe-alexa += "components/generic/avs/alexa_skill_mapper"
   SRCPV_pn-wpe-alexa = "${BRCMEXTERNAL-SRCPV-CMF}"
 $ repo sync
6 .Build the image target
 - Example for RaspberryPi
 $ source meta-cmf-raspberrypi/setup-environment
 ### select meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-hybrid-thunder.conf ###
 $ bitbake rdk-generic-hybrid-thunder-image

Build instructions

...

to run Alexa as systemd service

Code Block
1. Initialize and download the code base
 - Example for RaspberryPi:
 $ repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-nosrc.xml -b thunder-next
 $ repo sync

2. Download the meta-rdk-voice layer in project root
 $ git clone https://code.rdkcentral.com/r/components/generic/rdk-oe/meta-rdk-voice

3. Add to BBLAYERS
 $ vi meta-rdk/conf/bblayers.conf.sample
 BBLAYERS += "${@'${RDKROOT}/meta-rdk-voice' if os.path.isfile('${RDKROOT}/meta-rdk-voice/conf/layer.conf') else ''}"

4. Optionally if wanted to use MIC based implementation (Ignore if using BLE voice remote)
 $ vi meta-rdk-voice/conf/layer.conf
 - enable the below commented line
 #DISTRO_FEATURES_append = " alexa_ffv"

 # Please follow the steps mentioned in section #3.2 to enable USB audio kernel parameters (Not required for RaspberryPI).

5. Optionally For the external source builds (such as some Broadcom platforms) add below line in manifest/auto.conf
 - In <Manifest>.xml
   <project name="components/generic/avs/alexa_skill_mapper" revision="rdk-next"/>
 - In auto.conf (where brcmexternalsrc is enabled)
   BRCMEXTERNALSRC_pn-wpe-alexa += "components/generic/avs/alexa_skill_mapper:git/VoiceToApps"
   SRCPV_pn-wpe-alexa = "${BRCMEXTERNAL-SRCPV-CMF}"
 $ repo sync
6 .Build the image target
 - Example for RaspberryPi
 $ source meta-cmf-raspberrypi/setup-environment
 ### select meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-hybrid-thunder.conf ###
 $ bitbake rdk-generic-hybrid-thunder-image

...

Code Block
Note: This configuration is not required for RaspberryPi platforms
# If FFV profile is enabled (DISTRO_FEATURES_append = " alexa_ffv") & we want to simulate audio input using a USB mic the below kernel configuration need to be enabled for non RPI platforms:

CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_USB_AUDIO=m

# After enabling the above kernel configs, recompile the kernel so that the support for USB audio will be enabled_USB_AUDIO=m

# After enabling the above kernel configs, recompile the kernel so that the support for USB audio will be enabled

How to run the service

For AVS Plugin

  1.  Go to the controller web UI by typing http://<Device-IP> in a browser
  2. Select the controller option from left pane menu
  3. toggle the AVS option to activate the plugin

For systemd service (old implementation)

  1. Login to the device with "ssh root@<Device-IP>
  2. start the alexa service by invoking "systemctl start alexa.service"

Customization

Mapping to amazon developer account

...

At this stage, we can provide voice commands to alexa.

Example Usage

a) General Usage
ex:  1) User: what is the the time?a) General Usage
ex:  1) User: what is the the time?
          Alexa: respond with current time
      2) User : what is the weather outside ?
          Alexa: it will ask for you location
          User: if give the Location
          Alexa: respond with the climate in the current location.b) Skill Invocation Enablecurrent time
       User: My Device
       Alexa: respond with "how can i help you"2) User : what is the weather outside ?
       User : invocation enable
       Alexa : respond with "invocation enabled"c) Skill Invocation DisableAlexa: it will ask for you location
          (note :It is done when "skill mode" is already enabled & we want to switch back to "general mode" )User: if give the Location
       User: invocation disable
       AlexaAlexa: respond with "invocation disabled"the climate in the current location.

b) Using the custom skill to Launching Metro Applications

Note: Need to mention the skill name for invocation (skill name is My Device in below examples)d) Launching Metro Applications

ex :  1) launching RadioLine Application

          User: tell my device to launch radioline
          Alexa : respond with "radioline" by launching the application

...

       2) launching Wall Street Journal Application

          User: tell my device to launch WallStreetJournal
          Alexa : respond with "WallStreetJournal" by launching the application

...