GithubHelp home page GithubHelp logo

akashtaloleorg / alexa-smart-screen-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alexa/alexa-smart-screen-sdk

0.0 0.0 0.0 3.84 MB

The Alexa Smart Screen SDK enables device makers to build screen-based products that complement Alexa voice responses with rich visuals. https://developer.amazon.com/alexa-voice-service/alexa-smart-screen-sdk

License: Apache License 2.0

Shell 1.08% JavaScript 0.13% C++ 83.51% Python 0.24% TypeScript 10.51% CSS 0.16% HTML 0.04% CMake 4.33%

alexa-smart-screen-sdk's Introduction

Alexa Smart Screen SDK

The Alexa Smart Screen SDK extends the AVS Device SDK to support development for screen-based Alexa Built-in products. This SDK enables device makers to build screen-based products that complement Alexa voice responses with rich visual experiences.

The Alexa Smart Screen SDK package in this GitHub repo includes:

  • The Alexa Smart Screen SDK
  • A sample app that demonstrates end-to-end Alexa Smart Screen SDK functionality
  • A GUI web app that handles presentation of Alexa visual responses

The Alexa Smart Screen SDK depends on the following additional GitHub repos:

Note on APL Client Library

When building the Alexa Smart Screen SDK, the npm registry may alert you to a security vulnerability with the package apl-client.

The apl-client package for which this alert is raised is unrelated to the APL Client Library package that is part of the Alexa Smart Screen SDK.

Get Started

You can set up the Alexa Smart Screen SDK by using the following Quick Start Guides:

You can also create your device prototype by using an Amazon-qualified development kit that supports the Smart Screen SDK, such as:

SDK Architecture

This diagram illustrates the data flows between components that comprise the Alexa Smart Screen SDK.

AVS Device SDK: The SDK for Alexa Voice Service, which implements Alexa intelligent voice control functionality.

Capability Agents (CAs): Handle Alexa-driven interactions; specifically directives and events. Each capability agent corresponds to a specific interface exposed by the Alexa Smart Screen API. These interfaces include:

  • AlexaPresentation - The interface for rendering Alexa Presentation Language (APL) documents.
  • TemplateRuntime - The interface for PlayerInfo and Template cards (such as music cards and other static cards).
  • VisualCharacteristics - The interface for reporting the physical properties of visual display devices (such as screen resolution, window size, and supported interaction modes).

Smart Screen Sample Application: This is the Alexa Smart Screen SDK's sample app. It has two components: a sample app and a Javascript-based GUI client app.

  • GUIManager: Interface between the capability agents and the GUI
  • GUIClient: Manages messages between the GUI and the rest of the sample app
  • WebSocketServer: Reference implementation of a WebSocket-based messaging interface

APL Client: An Inter-process Communication (IPC) based APL Runtime which implements the APL Core Engine and the IPC APL Web ViewHost to render APL payloads.

HTML Rendering Engine: A Javascript-based GUI client app and APL view host that render the visual experience on the device.

  • WebSocket: Reference implementation of a WebSocket client
  • APL Web ViewHost: Renders the APL document generated by the APL Core Library
  • Alexa GUI: Reference GUI implementation

Security Requirements

All Alexa products must meet the AVS Security Requirements. In addition, when building the AVS Device SDK, you are required to adhere to the following security principles.

Important Considerations

Optional Configurations

Add voice chrome

The default implementation provides information on Alexa state, which you can use to create voice chrome. Be sure to follow the AVS Voice Chrome guidelines.

Run the GUI client with predefined device visual characteristics and GUI client configurations

We provide four different sample configuration files containing predefined device visual characteristics and GUI client configurations. These can be found under modules/GUI/config/guiConfigSamples. You can pass any of them as an extra config file argument after the main Smart Screen SDK config file argument when running the Sample App, for example:

    cd <pathTo>/ss-build
    ./modules/Alexa/SampleApp/src/SampleApp
        -C <pathTo>/sdk-build/Integration/AlexaClientSDKConfig.json
        -C <pathTo>/alexa-smart-screen-sdk/modules/GUI/config/SmartScreenSDKConfig.json
        -C <pathTo>/alexa-smart-screen-sdk/modules/GUI/config/guiConfigSamples/GuiConfigSample_TvOverlayPortrait.json 
        -L INFO

Remote control support

Functionality for Exit and Back buttons (as found on a device's physical remote control) is minimally supported by the Smart Screen SDK. The following behaviors are expected to occur on execution of either a BACK or EXIT navigationEvent:

  • Clear the rendering screen - Exit fully out of the Alexa-presented display so that no static image or layout is left.
  • Release the focus management - Release any focus management that might be held.

Using the default gui client configuration's device keys, Esc and B are mapped to EXIT and BACK respectively.

alexa-smart-screen-sdk's People

Contributors

chemudug-amzn avatar lynx-arul avatar jason-amzn avatar sngoc-amazon avatar rpalkar-amzn avatar 1cengizk avatar aravnata avatar dtpancha avatar powj avatar skovba avatar zsubas avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.