Skip to content

The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles.

License

Notifications You must be signed in to change notification settings

obigo/alexa-auto-sdk

 
 

Repository files navigation

Alexa Auto SDK

The Alexa Auto SDK contains essential client-side software required to integrate Alexa into the automobile. The Alexa Auto SDK provides a runtime engine for communicating with the Alexa service. It also provides interfaces that allow you to implement platform specific behavior such as audio input, media playback, template and state rendering, phone control, and car control. It also includes two sample applications that demonstrate how to use the Alexa Auto SDK interfaces.

Table of Contents:

Note: For UX design requirements, recommendations, and best practices, please see the Alexa Automotive design documentation. For information on topics not covered in the list above, please see Need Help?.

What's Included

The following components are included with the Alexa Auto SDK:

  • Builder: This directory contains the scripts that allow you to build modules for a variety of hardware targets.

  • Modules: This directory contains the Alexa Auto SDK interfaces and source code in the following modules:

    Note: The Android interfaces and source code are located in the /platforms/android/modules directory.

    • Alexa (for C++ or Android)

    • Core (for C++ or Android)

    • Navigation (for C++ or Android)

    • Phone Call Controller (for C++ or Android)

    • Address Book for C++ or Android)

    • Contact Uploader (for C++ or Android)

      Note The Contact Uploader module is on the deprecation path and supported for existing implementations only. It is superseded by the Address Book module.

    • CBL (for C++ or Android)

  • Android Sample App: This directory contains the Android sample application that uses the Alexa Auto SDK to demonstrate end-to-end functionality.

  • C++ Sample App: This directory contains the C++ sample application that uses the Alexa Auto SDK to demonstrate end-to-end functionality.

Additional functionality is available with help from your Amazon Solutions Architect (SA) or Partner Manager:

Alexa Auto SDK API Reference documentation is available for Android and C++. Access the Alexa Auto SDK API reference documentation from the links below.

Important! You need an Amazon Developer Account to use the Alexa Auto SDK. Read the Android Sample App documentation for more details.

General Build Requirements

You can build on a Linux, Unix, or macOS host of your choice.

However, we recommend and support running a Docker environment with the following configuration.

  • macOS Sierra or Ubuntu 16.04 LTS
  • Processor: 2.5 GHz
  • Memory: 16 Gb
  • Storage: 1 Gb+ available to use.

Build Dependencies and License Information

During the build time, the following dependencies are fetched and built for the target platform by the Alexa Auto SDK Builder. Please refer to each of the individual entities for the particular licenses.

Note: that OpenEmbedded-Core will fetch and build additional components for preparing the dedicated toolchain for your environment (Such as GNU Binutils). Please refer to the Yocto project to understand how it works.

Building the Alexa Auto SDK

To build the Alexa Auto SDK you should read and understand the instructions in the Builder README.

The recommended and tested host operating systems are Ubuntu 16.04 LTS or macOS Sierra.

Supported Target Platforms

The Alexa Auto SDK is supported on the following platforms:

  • Android 5.1 Lollipop API Level 22 or higher.
    • ARM 32-bit
    • ARM 64-bit
    • x86 32-bit
    • x86 64-bit
  • QNX 7.0
    • ARM 64-bit
    • x86 64-bit
  • AGL
    • ARM 64-bit
  • Generic Linux
    • x86 64-bit
  • Poky Linux
    • ARMv7a (+NEON)
    • AArch64

Note: For Android targets, pre-built platform AARs for the default Auto SDK modules are available in the JCenter repo. Read the instructions about downloading and using the AARs in the Android Sample App README.

Alexa Auto SDK Architecture Overview

The Alexa Auto SDK is designed to allow flexibility in the integration of Alexa as a part of the automotive in-cabin experience. The Alexa Auto SDK Engine provides runtime support for Alexa and other services and allows the application to integrate with platform specific functionality. Platform-specific behavior in Alexa Auto is abstracted into interfaces called "Platform Interfaces." These interfaces should be extended in the application and registered with the Engine.

The Platform Interfaces are documented in their respective module's API documentation.

Note: This diagram shows only some of the available platform interfaces.

architecture

Alexa Auto SDK Engine Alexa Auto SDK Engine

The runtime implementation of the Alexa Auto SDK is known as the Engine. Modules extend the Engine by providing services and defining the runtime behavior for Platform Interfaces that are registered by the application. The application software communicates with the Engine through the API defined by the Platform Interfaces.

Alexa Auto SDK Engine Core Module

The Core Module includes Platform Interfaces and runtime Engine support for Core features in the Alexa Auto SDK, such as logging, location, and network information. The services are used by components in other modules and are required by the Alexa Auto SDK.

Click here for more information.

Alexa Auto SDK Engine Alexa Module

The Alexa Module includes Platform Interfaces and runtime Engine support for Alexa features in the Alexa Auto SDK. View some sequence diagrams for more details.

This module includes support for audio input, media playback, template and state rendering, and much more.

Click here for more information.

Alexa Auto SDK Engine Navigation Module

The Navigation Module includes Platform Interfaces and runtime Engine support for Alexa to interface with the onboard navigation system.

Click here for more information.

Alexa Auto SDK Engine Phone Control Module

The Phone Control Module includes Platform Interfaces and runtime Engine support for Alexa to interface with the onboard telephony system.

Click here for more information.

Additional Functionality

The following extensions to the Alexa Auto SDK are available by request. Please contact your Amazon Solutions Architect (SA) or Partner Manager for more information.

Wake Word extension

Wake Word enables hands-free, voice-initiated interactions with Alexa. The Wake Word extension enables AmazonLite Wake Word support in the Alexa Auto SDK.

Alexa Communication extension

The Alexa Communication extension enables integration with Alexa-to-Alexa calling, Alexa-to-PSTN calling, and messaging capabilities.

Local Voice Control (LVC) extension

The Local Voice Control (LVC) extension provides car control, communication, navigation, and entertainment functionality, with and without an internet connection. It includes components that run an Alexa endpoint inside the vehicle's head unit. Local Voice Control is currently supported on Linux x86 64-bit, Linux ARM 32/64-bit, Android x86 32/64-bit, and Android ARM 32/64-bit platforms.

Device Client Metrics (DCM) extension

The Device Client Metrics (DCM) extension enables logging and uploading Alexa Auto SDK metrics to the Amazon cloud. Voice request metrics, for example, include start and end timestamps of user and Alexa speech and user perceived latency (UPL) between the request and Alexa’s response. Metrics may be tagged Beta, Gamma, or Prod depending on the vehicle lifecycle. The DCM extension is available for all Linux and Android platforms.

Voice Chrome extension

The Voice Chrome extension adds Voice Chrome support to the Auto SDK for Android x86 32/64-bit and Android ARM 32/64-bit platforms. Voice Chrome provides a consistent set of visual cues representing Alexa attention state across a range of Alexa-enabled devices. The Voice Chrome extension includes a prebuilt Android AAR library for easy integration with your applications, as well as a patch to the Android Sample App that adds the Voice Chrome functionality.

Getting Started With a Sample App

The Android Sample App and C++ Sample App each provide an example of using the Alexa Auto SDK. Their respective READMEs have detailed instructions for setup and usage.

Vehicle Configuration Information

Vehicle information must be supplied to the Alexa Auto SDK in order to pass the certification process. See additional information about vehicle configuration in the C++ or Android Core module documentation.

Release Notes and Known Issues

Feature enhancements, updates, and resolved issues are available to view in the Alexa Auto SDK Change Log

Android Sample App, C++ Sample App, and AGL known issues are documented in their respective READMEs.

About

The Alexa Auto SDK is for automotive OEMs to integrate Alexa directly into vehicles.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 77.9%
  • Java 16.0%
  • CMake 3.2%
  • Shell 1.3%
  • JavaScript 0.4%
  • C 0.3%
  • Other 0.9%