RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
Date | Feature Added |
---|---|
3113-MarMay-2021 | Alexa Smart Screen support added
AVS plugin integration with RDK services
Voice control support for new RDK UI
|
01-Feb-2021 | Added Video skill kit support & custom skill with the plugin
|
30-Nov-2020 | Support for AVS Thunder plugin:
|
01-Sep-2020 | Fixes and skill addition:
|
16-Jul-2020 | Initial commit :
|
Below are the components/code used with the RDK Alexa solution and the origin/owner for distribution.
Added support for smart screen notification and audio player support
Changes in Skill Mapping
| |
31-Mar-2021 | Alexa Smart Screen support added
AVS plugin integration with RDK services
Voice control support for new RDK UI
|
01-Feb-2021 | Added Video skill kit support & custom skill with the plugin
|
30-Nov-2020 | Support for AVS Thunder plugin:
|
01-Sep-2020 | Fixes and skill addition:
|
16-Jul-2020 | Initial commit :
|
Below are the components/code used with the RDK Alexa solution and the origin/owner for distribution.
Module | Artifact Name | Purpose | Location | CurrentVersion | Owned by | |
---|---|---|---|---|---|---|
AVS SDK | wpe-alexa-lib.bb | Build support for AVS Device SDK | ||||
Module | Artifact Name | Purpose | Location | CurrentVersion | Owned by | wpe-alexa-lib.bb | Build support for AVS Device SDK | CMF Hosted (meta-rdk-voice) | 1.15 | RDKM |
avs-device-sdk | Source code for AVS Device SDK | https://github.com/aws/aws-sdk-cpp | Amazon | |||
RDK Skill Mapper | skillmapper.bb | Build support for skill mapper moduleCMF Hosted (meta-rdk-voice) | 1.15 | RDKM | ||
avs-device-sdk | Source code for AVS Device SDK | https://github.com/aws/aws-sdk-cpp | Amazon | |||
RDK Skill Mapper | skillmapper.bb | Build support for skill mapper module | CMF Hosted (meta-rdk-voice) | RDKM | ||
alexa_skill_mapper | RDK component to:
| alexa_skill_mapper | RDK component to:
| CMF Hosted | RDKM | |
AWS SDK | aws-cpp-sdk.bb | Build support for AWS CPP SDK module | CMF Hosted (meta-rdk-voice) | RDKM | ||
aws-cpp-sdk | Provides APIS to integrate AWS services such as SQS, Lambda, cognito etc. to RDK client devices. | https://github.com/aws/aws-sdk-cpp | 1.6.53 | Amazon | ||
KWD Detector | pryonlite_2.3.0.bb | Build support for Amazon KWD engine. | CMF Hosted (meta-rdk-voice) | RDKM | ||
PryonLite pre-built library | Provides a Wake Word Engine that can be used with the Alexa plugin. This is useful for devices with far-field/microphone. | Distributed by Amazon | 2.3.0 | Amazon | ||
AVS Plugin | wpeframework-plugins.bb | Build support for the Amazon voice thunder plugin | Hosted in rdkcentral GitHub | RDKM | ||
thunder-services.bb | Build support for the AVS plugin with RDK services | CMF Hosted | RDKM | |||
AVS plugin | Amazon voice thunder plugin for Alexa service, uses AVS SDK & smart screen SDK APIS as part of the implementation | Hosted in Metrological GitHub | Metrological | |||
Lambda Demo code | lambda-code.zip | Reference implementation for receiving video skill directives from Alexa and routing it to the RDK device. Uses lambda & SQS services. | For Reference Only | |||
AVS Smart Screen SDK | alexa-ss-sdk_git.bb | Main recipe to build Alexa smart screen SDK | CMF Hosted (meta-rdk-voice) | RDKM | ||
alexa-smart-screen | Source code for the smart screen SDK | https://github.com/alexa/alexa-smart-screen-sdk/ | 2.0.1 | Amazon | ||
avs-voice-chrome | Source code to add voice chrome support over smart screen UI | Distributed by Amazon | 2.1 | Amazon | ||
APL Core | apl-core_git.bb | Recipe to build Alexa Presentation Language | CMF Hosted (meta-rdk-voice) | RDKM | ||
APL Core Library | Source code for rendering of screen layouts at runtime for the Alexa Presentation Language | https://github.com/alexa/apl-core-library | 1.2 | Amazon | ||
WebSocket++ | websocketpp_0.8.1.bb | Recipe to build the C++ websocket client library | CMF Hosted (meta-rdk-voice) | RDKM | ||
C++ websocket client/server library | https://github.com/zaphoyd/websocketpp | 0.8.1 | Open source | |||
ASIO | asio_1.10.6.bb | recipe to build C++ Network library | meta-openembedded | 1.10.6 | Open source | |
...
The build instructions are mentioned by taking RaspberryPi as an example but should be almost similar for other platforms.
...
Code Block |
---|
1. Initialize and download the code base - Example for RaspberryPi: $ repo init -u https://(we can use rdkv.xml to build with external source method or rdkv-nosrc.xml to build without externalsrc) $ repo init -u https://code.rdkcentral.com/r/manifests -m rdkv-nosrc.xml -b thunderrdk-next $ repo sync 2. Download the meta-rdk-voice layer in project root $ git clone https://code.rdkcentral.com/r/rdk/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. OptionallyFor ifthe wantedexternal tosource usebuilds MIC(such basedas implementationsome (IgnoreBroadcom ifplatforms) usingadd BLEbelow voiceline remote) $ vi meta-rdk-voice/conf/layerin manifest/auto.conf - enable the below commented line #DISTRO_FEATURES_append = " alexa_ffv" In <Manifest>.xml <project name="components/generic/avs/alexa_skill_mapper" revision="rdk-next"/> - FollowIn the section (Enable Keyword Detector) for using amazon provided KWD # 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-thunder-mc.conf ### $ bitbake rdk-generic-mediaclient-image |
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. 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).
4. 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
5 .Build the image target
- Example for RaspberryPi
$ source meta-cmf-raspberrypi/setup-environment
### select meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-thunder-mc.conf ###
$ bitbake rdk-generic-mediaclient-image |
Code Block |
---|
1. To use pryon lite KWD engine for devices with MIC input
Note: Source code need to be obtained from amazon separately
2. Set the KWD support flag to "ON"
$ vi meta-rdk-voice/recipes-wpe/wpeframework/include/avs.inc
AVS_KWD_SUPPORT ?= "ON"
3. include the KWD detector recipe to build.
- enable the commented line
#PREFERRED_PROVIDER_virtual/alexa-kwd-detector = "pryonlite"
4. Create a bbappend file in platform layer and provide artifact location
e.g.
$ vi meta-rdk-oem-<OEMNAME>/meta-<MACHINE>/recipes-avs/pryonlite/pryonlite_2.3.0.bbappend
SRC_URI = "file://pryon_lite_2.3.0-metrological-2019.12.23.2344.zip" |
auto.conf (where brcmexternalsrc is enabled)
BRCMEXTERNALSRC_pn-skillmapper += "rdk/components/generic/avs/alexa_skill_mapper"
SRCPV_pn-skillmapper = "${BRCMEXTERNAL-SRCPV-CMF}"
$ repo sync |
Mic input can be enable using below options , it will automatically add PORTAUDIO library as dependency.
KWD detector module will be required for MIC attached devices in order to wake-up Alexa & current implementation is only verified with pryonlite KWD detector.
Code Block |
---|
4. if wanted to use MIC based implementation
$ vi meta-rdk-voice/conf/layer.conf
- enable the below commented line
#DISTRO_FEATURES_append = " alexa_ffv"
|
Keyword detector (KWD) support enables the device to wake-up & listen to input after receiving the hot word "Alexa". It is used with devices that has on-board Microphone
This option need to be enabled along with "alexa_ffv" DISTRO for MIC based voice input
Code Block |
---|
1. To use pryon lite KWD engine for devices with MIC input
Note: Source code need to be obtained from amazon separately
2. Set the KWD support flag to "ON"
$ vi meta-rdk-voice/recipes-wpe/wpeframework/include/avs.inc
AVS_KWD_SUPPORT ?= "ON"
3. include the KWD detector recipe to build.
- enable the commented line
#PREFERRED_PROVIDER_virtual/alexa-kwd-detector = "pryonlite"
4. Create a bbappend file in platform layer and provide artifact location
e.g.
$ vi meta-rdk-oem-<OEMNAME>/meta-<MACHINE>/recipes-avs/pryonlite/pryonlite_2.3.0.bbappend
SRC_URI = "file://pryon_lite_2.3.0-metrological-2019.12.23.2344.zip" |
Code Block |
---|
# 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 the 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 |
Smart screen support will build the components that provide visual experience along with voice response.
Code Block |
---|
$ vi meta-rdk-voice/conf/layer.conf
- enable the below commented DISTRO_FEATURE
#DISTRO |
Code Block |
# If FFV profile is enabled (DISTRO_FEATURES_append = " alexa_smart_ffv") & we want to simulate audio input using a USB mic the below kernel configuration need to be enabled for the 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 |
screen" |
Voice chrome is a feature that is used along with Alexa smart screen. it provides a animated visual element to notify different Alexa states such as Listening, Thinking or Speaking. When the system is IDLE the voice chrome UI element is cleared from screen.
Code Block |
---|
1. Enable DISTRO options
$ vi meta-rdk-voice/conf/layer.conf
- enable the below commented DISTRO_FEATURE
#DISTRO_FEATURES_append = " voice-chrome"
2. Provide artifact location
- Add an .bbappend file for alexa-ss-sdk and over-write the SRC_URI
e.g.
|
Code Block |
$ vi meta-rdk-voice/conf/layer.conf
- enable the below commented DISTRO_FEATURE
#DISTRO_FEATURES_append = " alexa_smart_screen" |
oem-OEMNAME/meta-<MACHINE>/recipes-avs/alexa-smart-screen/alexa-ss-sdk_git.bbappend
SRC_URI_remove = "https://operator-artifact-url.com/location/SmartScreenSDKVoiceChrome-2.1.tar;name=voicechrome;subdir=voicechrome"
SRC_URI += "file://SmartScreenSDKVoiceChrome-2.1.tar;name=voicechrome;subdir=voicechrome" |
Code Block |
---|
Build the image target
- Example for RaspberryPi
$ source meta-cmf-raspberrypi/setup-environment
### select meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-thunder-mc.conf ###
$ bitbake rdk-generic-mediaclient-image |
Code Block |
1. Enable DISTRO options
$ vi meta-rdk-voice/conf/layer.conf
- enable the below commented DISTRO_FEATURE
#DISTRO_FEATURES_append = " voice-chrome"
2. Provide artifact location
- Add an .bbappend file for alexa-ss-sdk and over-write the SRC_URI
e.g.
$ vi meta-rdk-oem-OEMNAME/meta-<MACHINE>/recipes-avs/alexa-smart-screen/alexa-ss-sdk_git.bbappend
SRC_URI_remove = "https://operator-artifact-url.com/location/SmartScreenSDKVoiceChrome-2.1.tar;name=voicechrome;subdir=voicechrome"
SRC_URI += "file://SmartScreenSDKVoiceChrome-2.1.tar;name=voicechrome;subdir=voicechrome" |
...
...
Code Block |
---|
1. Login to the device $ ssh root@<RDKV-Client-IP> 2. Edit the Configuration file $ cd /usr/share/WPEFramework/AVS $ vi AlexaClientSDKConfig.json "deviceInfo":{ // Unique device serial number. e.g. 123456 "deviceSerialNumber":"<SERIAL_NO>", // The Client ID of the Product from developer.amazon.com "clientId":"<CLIENT_ID>", // Product ID from developer.amazon.com "productId":"<PRODUCT_ID>", // The name of the device manufacturer. "manufacturerName": "<MANUFACTURER_NAME>", // The description of the device which should contain the manufacturer name or how the device is connected. "description": "<DESCRIPTION<DESCRIPTION>" }, |
...
Note |
---|
|
...
...
We can check the authorization code using below command:
...
:
$ systemctl status alexa
$ tail -f /opt/logs/wpeframework.log
...
At this stage, we can provide voice commands to Alexa.
The Alexa Smart Screen SDK extends the AVS Device SDK to support visual display for screen-based Alexa Built-in products
...
. It complement Alexa voice responses with rich visual experiences.
The Alexa Smart Screen implementation for RDK involves below components:
Below are few screen shots which gives an idea about the smart screen integration for different scenarios.
a) Weather Information:a) Weather Information:
b) Music Playback
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: Provides the Location
Alexa: respond with the climate in the current location.
...
...
Issue | Description |
---|---|
Bluetooth voice input | BT voice input support is not yet available with the firebolt/RDK services codebase. This will be addressed in coming releases once the feature is ready. |
Generic search engine | Generic search feature is dependent on operators backend support. |
Feature | Status |
---|---|
Upgrade Alexa SDKs to latest version: ADSDK (1.2123), Smart Screen (2.56) | Planned in AprilJuly-21 2021 Sprint |
Extending support to 2 new more OEM platforms | Planned for next sprintIn Progress |
Context specific functionalities | Planned to support for some apps initially |
Multi room Music | Open |