Skip to content

Commit 0b8a9fb

Browse files
committed
Release esp-va-sdk-v1.0-rc1-193877
1 parent 063d26f commit 0b8a9fb

File tree

265 files changed

+7785
-6541
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

265 files changed

+7785
-6541
lines changed

CHANGELOG.md

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,50 @@
11
## ChangeLog
22

3-
### v1.0b1r7 (Beta) - 2018-01-08
3+
### 1.0-RC1 - 2019-05-14
4+
5+
**Enhancements**
6+
7+
This release is a major update to the previous release and includes the following changes:
8+
* Alexa:
9+
* All the Alexa functional and music certification tests can now be passed with this release.
10+
* Robustness enhancements that pass 100-hour long duration stress tests.
11+
* Wi-Fi and Alexa configuration on BLE (Bluetooth Low Energy) makes the provisioning experience much smoother (This mandates that you upgrade to the latest phone apps while using this release.).
12+
* Newer app and firmware supports WiFi scanlist as well.
13+
* Supports greater number of music stations because of:
14+
* Greater tolerance for variance in different music stations M3U8 formats.
15+
* Support for additional 'Content-Type' as reported by some music stations.
16+
* Improved directory structure to add flexibility to provide way to test other ESP32 based audio boards. Examples can be build and flashed on any of the following development boards with proper "AUDIO_BOARD_PATH" provided:
17+
1. LyraT
18+
2. LyraTD-SYNA
19+
3. LyraTD-DSPG
20+
4. LyraTD-MSC
21+
22+
* LEDs and tones are added for GVA and Dialogflow.
23+
* Support for setting custom tones.
24+
* nvs-set CLI supports setting and getting int16_t variable type.
25+
26+
**API Changes**
27+
28+
* Examples directories are renamed according to voice assistants. There are now 3 examples viz., amazon_alexa, google_voice_assistant and google_dialogflow.
29+
* BLE provisioning and authentication for Alexa instead of SoftAP provisioning.
30+
* Local Player, Equalizer and AWS-IoT are moved inside amazon_alexa/additional_components/
31+
* voice_assistant_app_cb.h:
32+
* va_app_set_volume() is now deprected. A new function va_app_volume_is_set() is now introduced. Earlier the app had to change the volume itself. Now this is directly handled in the medial-hal layer. The application layer only gets a notification once the volume changed has happened.
33+
* va_app_set_mute() is now deprected. A new function va_app_mute_is_set() is now introduced. Earlier the app had to mute the volume itself. Now this is directly handled in the medial-hal layer. The application layer only gets a notification once the mute change has happened.
34+
* A new API va_boot_is_finish() is introduced that allows applications to wait until the complete boot-up has finished.
35+
* A new API tone_set_custom() lets application override the existing tone with a custom tone that can be played.
36+
* The audio_player_stop() API is now updated to include one additional parameter which is a notify callback.
37+
* The alexa_config_t structure now includes two additional members 'device_serial_num' and 'product_id' which are now used for communication with the AVS service.
38+
39+
40+
**Bug Fixes**
41+
42+
* Fixed What’s up interruption stalling the device.
43+
* Code restructuring in the SDK to fix various race conditions occurring during long-duration testing
44+
* Improved stability for if the Internet or Wi-Fi connectivity is intermittent.
45+
* All well known TuneIn radio stations are now supported.
46+
47+
### v1.0b1r7 (Beta) - 2019-01-08
448

549
**Enhancements**
650

@@ -11,7 +55,7 @@
1155
**API Changes**
1256

1357
* Example directories are renamed.
14-
* Many structures, functions and header files with "alexa" prefix are renamed with "va" prefix. Please follow README-FIRST.md if you want to compile and run older examples with new SDK.
58+
* Many structures, functions and header files with "alexa" prefix are renamed with "va" prefix. Please follow the `Upgrading from Previous Release` section from `README-Getting-Started.md` if you want to compile and run older examples with new SDK.
1559

1660
**Bug Fixes**
1761

README-FIRST.md

Lines changed: 0 additions & 12 deletions
This file was deleted.

README-Getting-Started.md

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,55 @@
11
# Prerequisites
22
Please prepare your host system with the toolchain. Please see http://esp-idf.readthedocs.io/en/latest/get-started/index.html for the host setup.
33

4-
# Supported Hardware
5-
lyrat and lyrat_sr application supports ESP32 based LyraT v4.1, LyraT v4.2 and LyraT v4.3
6-
lyratd_msc_sr application supports ESP32 based LyraTD_MSC v2.0, LyraTD_MSC v2.1
74

85
# Prepare Images
96

107
## Clone all the repositories
118
```
129
$ git clone --recursive https://github.com/espressif/esp-idf.git
1310
14-
$ cd esp-idf; git checkout release/v3.1; cd ..
11+
$ cd esp-idf; git checkout release/v3.2; cd ..
1512
16-
$ git clone https://github.com/espressif/esp-avs-sdk.git
17-
```
18-
19-
## Apply patches on esp-idf
20-
```
21-
$ cd esp-idf
22-
23-
$ git apply ../esp-avs-sdk/esp-idf-patches/memset-i2s-dma-buffers-zero.patch
24-
25-
$ git apply ../esp-avs-sdk/esp-idf-patches/esp-tls-Add-support-for-global-CA-store.-All-mbedtls.patch
13+
$ git clone https://github.com/espressif/esp-va-sdk.git
2614
```
2715

2816
## Build and flash the project
2917
```
30-
$ cd esp-avs-sdk/examples/<example_board_directory>
18+
$ cd esp-va-sdk/examples/<example_voice_assistant_directory>
19+
20+
$ export ESPPORT=/dev/cu.SLAB_USBtoUART (or /dev/ttyUSB0 or /dev/ttyUSB1 on Linux or COMxx on MinGW)
3121
3222
$ export IDF_PATH=/path/to/esp-idf
3323
34-
$ export ESPPORT=/dev/cu.SLAB_USBtoUART (or /dev/ttyUSB0 or /dev/ttyUSB1 on Linux or COMxx on MinGW)
24+
# Set audio_board path. e.g. For LyraT board:
25+
$ export AUDIO_BOARD_PATH=/path/to/esp-va-sdk/board_support_pkgs/lyrat/audio_board/audio_board_lyrat/
3526
36-
$ make -j 8 flash VOICE_ASSISTANT=<alexa/gva/dialogflow> monitor
27+
$ make -j 8 flash monitor
3728
```
3829
NOTE:
39-
> lyrat app only supports Tap-to-talk whereas lyrat_sr and lyratd_msc_sr apps support both, "Alexa" wakeword and tap-to-talk.
30+
> The google_voice_assistant and google_dialogflow applications only support Tap-to-talk whereas the amazon_alexa application supports both, "Alexa" wakeword and tap-to-talk.
31+
32+
# Upgrading from Previous Release
33+
Please skip this section if you are using the SDK for the first time.
34+
35+
## Upgrading to 1.0-RC1
36+
37+
* The example applications have changed from hardware specific to voice assistant specific.
38+
* Hardware/Board specific configuration (specifically, LEDs, Hardware Codecs, DSP and the board) is moved into a separate board support package. Please pass the path of this package to the build command line as indicated above.
39+
* The esp-idf branch needs to be changed to release/v3.2 from release/v3.1 and the relevant new patches need to be applied.
40+
* The nvs version is changed with IDF release/v3.2. Please do `make erase-flash` before flashing the new app. Now re-provision the device.
41+
* Provisioning and authentication of Alexa app is now carried out over BLE instead of SoftAP. Use the new Android app for the same. (iOS app support is comming soon). GVA and Dialogflow would continue to use their respective older provisioning methods for now.
42+
43+
44+
## Upgrading to v1.0b1r7 (Beta)
45+
46+
* Most API names have changed from alexa\_ to va\_. Please follow these steps to upgrade.
47+
* Download script v1_0r6Tov1_0r7_update_script.sh available under "releases" tab, and copy it in SDK's root directory (esp-voice-assistants).
48+
* Copy your example in examples directory.
49+
* Run the script using below commands:
50+
* cd /path/to/esp-voice-assistants
51+
* ./v1_0r6Tov1_0r7_update_script.sh
52+
53+
## Upgrading to v1.0b1r6 (Beta)
54+
55+
* Release v1.0b1r6 changes the way WiFi credentials are stored in NVS. Hence when you upgrade your device to latest SDK, your device would go into provisioning mode again, and needs to be re-provisioned via provisioning app.

README.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
## Overview
22

3-
The ESP-Voice-Assistant SDK provides an implementation of Amazon's Alexa Voice Service, Google Voice Assistant and Google's conversational interface (aka Dialogflow) for ESP32 microcontroller. This facilitates the developers to evaluate ESP32 based voice assistant/s integrated devices like speakers and IoT devices. Please refer to [Changelog](CHANGELOG.md) to track release changes and known-issues.
3+
The ESP-Voice-Assistant SDK provides an implementation of Amazon's Alexa Voice Service, Google Voice Assistant and Google's conversational interface (aka Dialogflow) for ESP32 microcontroller. This facilitates the developers to evaluate ESP32 based voice assistant/s integrated devices like speakers and other IoT devices. Please refer to [Changelog](CHANGELOG.md) to track release changes and known-issues.
44

55
### About SDK
66

7-
The SDK contains pre-built libraries for Alexa, GVA and Dialogflow along with sources of some of the utility components such as audio pipeline and connection manager. Below are the list of features supported for each voice assistant:
8-
* **Alexa**:
9-
* Basic Alexa conversation
10-
* Alexa dialogues and multi-turn
11-
* Audio Streaming and Playback: Saavn, Amazon music, TuneIn (Only limited stations are supported as of now)
7+
The SDK contains pre-built libraries for Amazon Alexa, Google Voice Assistant (GVA) and Google Dialogflow along with sources of some of the utility components such as audio pipeline and connection manager. Below are the list of some of the features supported for each voice assistant:
8+
* **Amazon Alexa**:
9+
* Basic conversation
10+
* Multi-turn conversations
11+
* Audio Streaming and Playback
1212
* Audio Book Support: Kindle, Audible
13-
* Volume control via Alexa command
13+
* Volume control via voice command
1414
* Seek support for Audible
15-
* Alerts/Timers, Reminders, Notifications
15+
* Alarms, Timers, Reminders, Notifications
1616

1717
* **Google Voice Assistant**:
1818
* Basic conversation
@@ -23,7 +23,7 @@ The SDK contains pre-built libraries for Alexa, GVA and Dialogflow along with so
2323
* **Google Dialogflow**:
2424
* Basic conversation
2525
* Multi-turn conversations
26-
* Configure and control connected devices via voice, e.g "Turn the light on"
26+
* Configure and control connected devices via voice, e.g "Start the Laundry"
2727
* Multiple language support
2828

2929
## Supported Hardware
@@ -33,14 +33,13 @@ The SDK supports the following hardware platforms:
3333
* [ESP32-LyraTD-MSC](https://www.espressif.com/en/products/hardware/esp32-lyratd-msc)
3434

3535
The following list of acoustic front-ends is also supported. Please contact Espressif to enable acccess to these solutions.
36-
* DSPG DBMD5
36+
* DSPG DBMD5P
3737
* Intel s1000
3838
* Synaptics CX20921
3939

4040
## Getting started
4141

4242
* Follow the `README-Getting-Started.md` to clone the required repositories and to compile and flash the firmware.
43-
* When flashing the SDK for the first time, it is recommended to do `make erase_flash` to wipe out entire flash and start out fresh.
44-
* Go through `README-<voice_assistant>.md` to know how to provision the device and to get authentication tokens from respective authorization server and flash them onto the device.
45-
* Check example application's README for board or example specific changes that might be required.
46-
* If you are updating from previous release, please check `README-FIRST.md` to know about any specific actions that needs to be taken while upgrading.
43+
* When flashing the SDK for the first time, it is recommended to do `make erase_flash` to wipe out entire flash and start out fresh.
44+
* Go through `README-<voice_assistant>.md` in their respective directories to know how to provision the device and to get authentication tokens from the respective authorization server and flash them onto the device.
45+
* If you are updating from previous release, please check the `Upgrading from Previous Release` section from `README-Getting-Started.md` to know about any specific actions that needs to be taken while upgrading.

board_support_pkgs/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## Overview
2+
3+
This folder contains support packages for various ESP32 based development boards.
4+
5+
Build any of the examples from this sdk by providing AUDIO_BOARD_PATH for any of the board.
6+
7+
For example command below will build voice assistant example for `LyraT` board:
8+
9+
```
10+
make -j8 AUDIO_BOARD_PATH=<path_to_this folder/lyrat/audio_board/audio_board_lyrat/>
11+
```
12+
13+
You may as well create package for your own board in this fashion and provide path as example above to build for that board.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
AUDIO_HAL_PATH := $(AUDIO_BOARD_PATH)/../../
2+
IPC_DRV_PATH := $(AUDIO_BOARD_PATH)/
3+
4+
# Board
5+
EXTRA_COMPONENT_DIRS += $(AUDIO_BOARD_PATH)/
6+
7+
# LED driver
8+
EXTRA_COMPONENT_DIRS += $(AUDIO_HAL_PATH)/led_driver/ledc_lyrat
9+
10+
# codec
11+
EXTRA_COMPONENT_DIRS += $(AUDIO_HAL_PATH)/esp_codec/es8388/components/
12+
13+
# va_dsp
14+
include $(IPC_DRV_PATH)/va_dsp/va_dsp.mk
15+
16+
# This var sets partition file to partitions_4mb_flash.csv
17+
# Please take a look at example makefile.
18+
PARTITIONS_4MB_FLASH_CSV = 1
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,12 +91,8 @@ esp_err_t audio_board_i2s_init_default(i2s_config_t *i2s_cfg_dft)
9191
i2s_cfg_dft->dma_buf_len = 300; /*!< size of each dma buffer (Byte) */
9292
i2s_cfg_dft->intr_alloc_flags = 0;
9393
i2s_cfg_dft->use_apll = 0;
94+
i2s_cfg_dft->tx_desc_auto_clear = true;
9495

9596
return ESP_OK;
9697
}
9798

98-
esp_err_t audio_board_button_config(adc1_channel_t *pf_button_pin)
99-
{
100-
*pf_button_pin = ADC1_CHANNEL_3;
101-
return ESP_OK;
102-
}

examples/lyratd_msc_sr/components/audio_board_lyratd_msc/component.mk renamed to board_support_pkgs/lyrat/audio_board/audio_board_lyrat/audio_board_lyrat/component.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,8 @@
22
# Component Makefile
33
#
44

5+
COMPONENT_ADD_INCLUDEDIRS := .
6+
57
COMPONENT_SRCDIRS := .
8+
9+

0 commit comments

Comments
 (0)