AVS Device SDK Dependencies
The Alexa Voice Service (AVS) Device SDK requires dependencies to compile and run. These dependencies include compilers, build tools, and open source libraries. This page lists these dependencies and the minimum versions tested against the SDK. If you choose to use different dependencies in your build, you might encounter issues beyond the scope of the AVS Device SDK documentation.
- Required dependencies
- Optional dependencies
The AVS Device SDK requires the following dependencies to build. Make sure you're using the minimum version or higher that's listed in the table.
The AVS Device SDK provides C++-based libraries that enable your device to process audio inputs and triggers, establish persistent connections with AVS, and handle all Alexa interactions.
To compile the SDK, your device must run C ++.
The AVS Device SDK runs on one of the following platforms.
|Raspberry Pi||Model: 3B/OS: Raspbian Stretch and Buster|
|macOS||Mojave (10.14.6) and High Sierra (10.13.6)|
|Android||Android 6.0 +|
|Windows 64-bit||Windows 10 Enterprise 1703|
If you're using Ubuntu, Raspberry Pi, or macOS, you need a compiler to build the AVS Device SDK.
|GNU Compiler Collection (GCC)||4.8.5|
The AVS Device SDK uses a build tool to compile dependencies and automate build tasks.
CMake is a cross-platform set of tools that manages your application's dependencies and creates native makefiles and workspaces suitable for the platform you're building with. It's an easy way to create, build, and test projects using the AVS Device SDK.
The AVS Device SDK uses the following open source libraries and their respective dependencies - libcurl, nghttp2, OpenSSL, and Doxygen.
Core music provider
The AVS Device SDK doesn't support music out-of-the-box. However, all Alexa devices must support AVS music service providers to pass certification. The following audio libraries, packages, and dependencies are tested and work with the SDK.
|Crypto library - For HLS demuxers||1.8.4 or earlier|
|libsoup - An HTTP client/server library used by GStreamer.||2.6.5 or earlier|
|libfaad-dev - AAC and HE-AAC decoding||1.10.4|
|GStreamer Bad Plug-ins||1.10.4|
To install optional features in the AVS Device SDK, you must download the following required dependencies. Make sure you're using the minimum version or higher that's listed in the table.
Building the AVS Device SDK sample app is optional. The sample app lets you test Alexa on your platform of choice, before integrating with your device. The sample app runs on Mac, Linux, Raspberry Pi, Windows, or Android. It requires the following dependencies.
Note: If you're using the Android Microphone and Media Player, you don't require these dependencies.
The SDK integrates Alerts with the following libraries, modules, and their dependencies. You can choose to build with different dependencies, however, they have not been explicitly tested against the SDK.
- Install SQLite.
- Set your device system clock to UTC time. To set UTC time, use Network Time Protocol (NTP).
- Install a file system.
Building with Bluetooth is optional and is only supported on Linux or Raspberry Pi. You can use the following Bluetooth protocols.
To enable BlueZ and PulseAudio, the SDK uses the following libraries, modules, and dependencies. You can choose to build with different dependencies, however, they have not been explicitly tested against the SDK.
|libpulse-dev - Only required if enabling this particular Cmake variable:
|PulseAudio and PulseAudio Bluetooth (or equivalent) - Used to handle audio routing||12.2 or earlier|
The MediaPlayerInterface allows for sourcing, playback control, navigation, and querying the state of media content.
MediaPlayerInterface is optional. To build this interface, you must install the following libraries, plug-ins, and dependencies:
|GStreamer Base Plug-ins||1.8.3|
|GStreamer Good Plug-ins||1.8.3|
|GStreamer Libav Plug-ins OR
GStreamer Ugly Plug-ins
For decoding MP3 data
SAMPLE-AES decryption is optional. To enable SAMPLE-AES decryption for audio streamed to your device:
- Install the FFMPEG library.
- Enable SAMPLE-AES decryption in your CMake command.
Build for Android
To build for Android, you must install these following libraries, packages, and dpendencies.
|Android 6.0||API Level 23|
|Android SDK tools - Included in Android Studio by default.||1.0.39|
|Android Native Development Kit (NDK). Required for the