Go to file
Caleigh Minshall f300eab99a Version 1.17.0 alexa-client-sdk
Changes in this update:

**Enhancements**

- Added support for [captions for TTS](https://developer.amazon.com/docs/avs-device-sdk/features.html#captions). This enhancement allows you to print onscreen captions for Alexa voice responses.
- Added support for [SpeechSynthesizer Interface 1.3](https://developer.amazon.com/docs/alexa-voice-service/speechsynthesizer.html). This interface supports the new `captions` parameter.
- Added support for [AudioPlayer Interface 1.3](https://developer.amazon.com/docs/alexa-voice-service/audioplayer.html). This interface supports the new `captions` parameter.
- Added support for [Interaction Model 1.2](https://developer.amazon.com/docs/alexa-voice-service/interactionmodel-interface.html).
- Added support for [System 2.0](https://developer.amazon.com/en-US/docs/alexa/alexa-voice-service/system.html).
- Added support for Alarm Volume Ramp. This feature lets you to fade in alarms for a more pleasant experience. You enable alarm volume ramp in the sample app through the settings menu.
- Added support for using certified senders for URI path extensions. This change allows you to specify the URI path extension when sending messages with [`CertifiedSender::sendJSONMessage`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1certified_sender_1_1_certified_sender.html#a4c0706d79717b226ba77d1a9c3280fe6).
- Added new [`Metrics`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1avs_common_1_1utils_1_1_metrics.html) interfaces and helper classes. These additions help you create and consume [`Metrics`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1avs_common_1_1utils_1_1_metrics.html) events.
 - **Interfaces** - `MetricRecorderInterface`, `MetricSinkInterface`.
 - **Helper Classes** - `DataPointStringBuilder`, `DataPointCounterBuilder`, `DataPointDurationBuilder`, `MetricEventBuilder`.

- Added support for the following AVS [endpoint](../avs-device-sdk/endpoints.html) controller capabilities:
 - [Alexa.ModeController](https://developer.amazon.com/docs/alexa-voice-service/alexa-modecontroller.html)
 - [Alexa.RangeController](https://developer.amazon.com/docs/alexa-voice-service/alexa-rangecontroller.html)
 - [Alexa.PowerController](https://developer.amazon.com/docs/alexa-voice-service/alexa-powercontroller.html)
 - [Alexa.ToggleController](https://developer.amazon.com/docs/alexa-voice-service/alexa-togglecontroller.html)

- Added `PowerResourceManagerInterface`. This interface allows the SDK to control power resource levels for components such as the `AudioInputProcessor` and `SpeechSynthesizer`.
- Added `AlexaInterfaceCapabilityAgent`. This Capability Agent handles common directives and endpoint controller capabilities support by [`Alexa.AlexaInterface`](../alexa-voice-service/alexa.html).
- Added `AlexaInterfaceMessageSenderInterface`. This interface is required to send common events defined by the `Alexa.AlexaInterface` interface.
- Added `BufferingComplete` to [`MediaPlayerObserverInterface`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1avs_common_1_1utils_1_1media_player_1_1_media_player_observer_interface.html). This method helps improve performance in poor networking conditions by making sure `MediaPlayer` pre-buffers correctly.
- Added `SendDTMF` to `CallManagerInterface`. This method allows you to send DTMF tones during calls.

**New build options**

- CAPTIONS
 - **ADDED** [`CAPTIONS`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#captions)
 - **ADDED** [`LIBWEBVTT_LIB_PATH`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#captions)
 - **ADDED** [`LIBWEBVTT_INCLUDE_DIR`](https://developer.amazon.com/docs//avs-device-sdk/cmake-parameters.html#captions)
- METRICS
 - **ADDED** [`METRICS`](https://developer.amazon.com/docs//avs-device-sdk/cmake-parameters.html#metrics)
- ENDPONTS
 - **ADDED** [`ENABLE_ALL_ENDPOINT_CONTROLLERS`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#endpoints)
 - **ADDED** [`ENABLE_POWER_CONTROLLER`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#endpoints)
 - **ADDED** [`ENABLE_TOGGLE_CONTROLLER`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#endpoints)
 - **ADDED** [`ENABLE_RANGE_CONTROLLER`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#endpoints)
 - **ADDED** [`ENABLE_MODE_CONTROLLER`](https://developer.amazon.com/docs/avs-device-sdk/cmake-parameters.html#endpoints)

**New dependencies**

- To use captions, you must install a [new dependency](https://developer.amazon.com/docs/avs-device-sdk/dependencies) – the [libwebvtt parsing library](https://github.com/alexa/webvtt). Webvtt is a C/C++ library for interpreting and authoring conformant WebVTT content. WebVTT is a caption and subtitle format designed for use with HTML5 audio and video elements.

**Bug fixes**

- Fixed [`MimeResponseSink::onReceiveNonMimeData`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1acl_1_1_mime_response_sink.html) [data issue](https://github.com/alexa/avs-device-sdk/issues/1519) that returned invalid data.
- Fixed [data type issue](https://github.com/alexa/avs-device-sdk/issues/1519) that incorrectly used `finalResponseCode` instead of [`FinalResponseCodeId`](https://github.com/alexa/avs-device-sdk/blob/master/AVSCommon/Utils/src/LibcurlUtils/LibCurlHttpContentFetcher.cpp#L370).
- Fixed [`UrlContentToAttachmentConverter`](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1playlist_parser_1_1_url_content_to_attachment_converter.html) issue that used the incorrect range parameter.
- Fixed `FinallyGuard` [linking issue](https://github.com/alexa/avs-device-sdk/issues/1517) that caused problems compiling the SDK on iOS.
- Fixed a [Bluetooth Capability Agent](https://alexa.github.io/avs-device-sdk/classalexa_client_s_d_k_1_1capability_agents_1_1bluetooth_1_1_bluetooth.html) bug that prevented devices from initializing.

**Known Issues**

* The WebVTT dependency required for `captions` isn't supported for Windows/Android.
* Music playback history isn't displayed in the Alexa app for certain account and device types.
* When using Gnu Compiler Collection 8+ (GCC 8+), `-Wclass-memaccess` triggers warnings. You can ignore these, they don't cause the build to fail.
* Android error `libDefaultClient.so not found` might occur. Resolve this by upgrading to ADB version 1.0.40.
* If a device loses a network connection, the lost connection status isn't returned via local TTS.
* ACL encounters issues if it receives audio attachments but doesn't consume them.
* `SpeechSynthesizerState` uses `GAINING_FOCUS` and `LOSING_FOCUS` as a workaround for handling intermediate states.
* Media steamed through Bluetooth might abruptly stop. To restart playback, resume the media in the source application or toggle next/previous.
* If a connected Bluetooth device is inactive, the Alexa app might indicates that audio is playing.
* The Bluetooth agent assumes that the Bluetooth adapter is always connected to a power source. Disconnecting from a power source during operation isn't yet supported.
* When using some products, interrupted Bluetooth playback might not resume if other content is locally streamed.
* `make integration` isn't available for Android. To run Android integration tests, manually upload the test binary and input file and run ADB.
* Alexa might truncate the beginning of speech when responding to text-to-speech (TTS) user events. This only impacts Raspberry Pi devices running Android Things with HDMI output audio.
* A reminder TTS message doesn't play if the sample app restarts and loses a network connection. Instead, the default alarm tone plays twice.
* `ServerDisconnectIntegratonTest` tests are disabled until they are updated to reflect new service behavior.
* Bluetooth initialization must complete before connecting devices, otherwise devices are ignored.
* The `DirectiveSequencerTest.test_handleBlockingThenImmediatelyThenNonBockingOnSameDialogId` test fails intermittently.
* On some devices, Alexa gets stuck in a permanent listening state. Pressing `t` and `h` in the Sample App doesn't exit the listening state.
* Exiting the settings menu doesn't provide a message to indicate that you're back in the main menu.
2019-12-10 13:02:09 -08:00
ACL Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
ADSL Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
AFML Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
AVSCommon Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
AVSGatewayManager Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
ApplicationUtilities Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
BluetoothImplementations Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
CapabilitiesDelegate Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
CapabilityAgents Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
Captions Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
CertifiedSender Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
ContextManager Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
Endpoints Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
EqualizerImplementations Version 1.16 alexa-client-sdk 2019-10-25 13:19:44 -07:00
Integration Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
KWD Version 1.13 alexa-client-sdk 2019-05-22 19:06:18 -04:00
MediaPlayer Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
Metrics Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
PlaylistParser Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
RegistrationManager Version 1.15 alexa-client-sdk 2019-09-25 11:49:09 -07:00
SampleApp Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
Settings Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
SpeechEncoder Version 1.15 alexa-client-sdk 2019-09-25 11:49:09 -07:00
Storage Version 1.16 alexa-client-sdk 2019-10-25 13:19:44 -07:00
SynchronizeStateSender Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
ThirdParty Version 1.11 alexa-client-sdk 2018-12-19 11:13:36 -08:00
build Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
doc v1.3.0 released 12/08/2017: 2017-12-08 16:07:37 -08:00
tools Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
.clang-format Version 1.2.0 alexa-client-sdk 2017-10-31 07:36:26 -07:00
.gitignore Version 1.2.0 alexa-client-sdk 2017-10-31 07:36:26 -07:00
CHANGELOG.md Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
CMakeLists.txt Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
CONTRIBUTING.md CONTRIBUTING.md added to the repository with information on reporting bugs and seeking help from the AVS developer community. 2017-10-19 14:32:58 -07:00
LICENSE.txt Version 0.1 - Alexa Communications Library - This component serves as the main communications channel between the client and Alexa Voice Service, providing an interface with which to send and receive messages. 2017-02-10 15:39:10 -08:00
NOTICE.txt Version 1.16 alexa-client-sdk 2019-10-25 13:19:44 -07:00
README.md Version 1.17.0 alexa-client-sdk 2019-12-10 13:02:09 -08:00
issue_template.md Version 1.4.0 alexa-client-sdk 2018-01-12 15:45:42 -08:00
pkg-config.pc.cmake Version 1.0.1 alexa-client-sdk 2017-08-16 17:13:40 -07:00

README.md

What is the Alexa Voice Service (AVS)?

The Alexa Voice Service (AVS) enables developers to integrate Alexa directly into their products, bringing the convenience of voice control to any connected device. AVS provides developers with access to a suite of resources to build Alexa-enabled products, including APIs, hardware development kits, software development kits, and documentation.

Learn more »

What is the AVS Device SDK

The Alexa Voice Service (AVS) Device SDK provides you with a set of C ++ libraries to build an Alexa Built-in product, meaning your device has direct access to cloud-based Alexa capabilities to receive voice responses instantly. Your device can be almost anything a smartwatch, a speaker, headphones the choice is yours.

Learn more »

Release Notes and Known Issues

Feature enhancements, updates, and resolved issues from all releases are available on the Amazon developer portal.

Get Started

You can set up the SDK on the following platforms:

SDK Architecture

The SDK is modular and abstract. It provides separate components to handle necessary Alexa functionality including processing audio, maintaining persistent connections, and managing Alexa interactions. Each component exposes Alexa APIs to customize your device integrations as needed. The SDK also includes a Sample App, so you can test interactions before integration.

Learn more »

API References

View the C++ API References for detailed information about implementation.

Security Best Practices and Important Considerations

All Alexa products should adopt the Security Best Practices for Alexa.

When building Alexa with the SDK, you should also adhere to the following security principles.