aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-10-15 20:37:40 -0400
committerScott Murray <scott.murray@konsulko.com>2019-12-20 15:44:08 -0500
commit51b5717e14a9286dc335f601f2830827625f1d67 (patch)
tree6dc9049ef892ecdb9adc4bf0dc16dfdeb5f05e9e
parent3d6edba9fc888d4c6a02453dc44c047a665ec59c (diff)
meta-speech-framework: rework voiceagent configuration
After agl-service-voice-high rework to make the voiceagent(s) used externally configurable, replace the previous virtual/voiceagent PREFERRED_RPROVIDER scheme with a virtual/voice-high-config that just selects the appropriate configuration package based on the specified feature. If agl-speech-framework is specified on its own, a default configuration file specifying no default voiceagent will be installed. If agl-voiceagent-alexa is specified, the default configuration will specify the Alexa voiceagent as the default. Recipes have been added for the new configuration file packages, and the alexa-voiceagent-service recipe has been tweaked to create a package with the Alexa per-voiceagent configuration file and add it as a dependency. Bug-AGL: SPEC-2898 Change-Id: I3ea2534b0f55aefa0226ef09b6ffde468feef2fe Signed-off-by: Scott Murray <scott.murray@konsulko.com> (cherry picked from commit a765be206e7379885c8df72f4ff89b6e0bf14e1e)
-rw-r--r--meta-speech-framework/conf/include/agl-speech-framework.inc3
-rw-r--r--meta-speech-framework/conf/include/agl-voiceagent-alexa.inc2
-rw-r--r--meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config/voice-high.json1
-rw-r--r--meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config_1.0.bb20
-rw-r--r--meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/alexa.json14
-rw-r--r--meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb15
-rw-r--r--meta-speech-framework/meta-aac/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend4
-rw-r--r--meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config/voice-high.json1
-rw-r--r--meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config_1.0.bb20
-rw-r--r--meta-speech-framework/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend4
10 files changed, 73 insertions, 11 deletions
diff --git a/meta-speech-framework/conf/include/agl-speech-framework.inc b/meta-speech-framework/conf/include/agl-speech-framework.inc
index 9b7a0f07..ee19d25f 100644
--- a/meta-speech-framework/conf/include/agl-speech-framework.inc
+++ b/meta-speech-framework/conf/include/agl-speech-framework.inc
@@ -1,2 +1 @@
-# Currently no default voiceagent
-PREFERRED_RPROVIDER_virtual/voiceagent ?= ""
+PREFERRED_RPROVIDER_virtual/voice-high-config = "default-voice-high-config"
diff --git a/meta-speech-framework/conf/include/agl-voiceagent-alexa.inc b/meta-speech-framework/conf/include/agl-voiceagent-alexa.inc
index ad509d14..7b478474 100644
--- a/meta-speech-framework/conf/include/agl-voiceagent-alexa.inc
+++ b/meta-speech-framework/conf/include/agl-voiceagent-alexa.inc
@@ -3,4 +3,4 @@
# agl-voiceagent-alexa is configured.
BBMASK += "meta-aac/recipes-support/curl/curl_%.bbappend"
-PREFERRED_RPROVIDER_virtual/voiceagent = "alexa-voiceagent-service"
+PREFERRED_RPROVIDER_virtual/voice-high-config = "alexa-voice-high-config"
diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config/voice-high.json b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config/voice-high.json
new file mode 100644
index 00000000..f460ccfc
--- /dev/null
+++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config/voice-high.json
@@ -0,0 +1 @@
+{ "default": "VA-001" }
diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config_1.0.bb b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config_1.0.bb
new file mode 100644
index 00000000..736a7ce5
--- /dev/null
+++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voice-high-config_1.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "High level voice service binding default voiceagent configuration for Alexa"
+DESCRIPTION = "Alexa default voiceagent JSON configuration file for agl-service-voice-high binding"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-voice-high"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "file://voice-high.json"
+
+inherit allarch
+
+do_compile[noexec] = "1"
+
+do_install () {
+ install -D -m 644 ${WORKDIR}/voice-high.json ${D}${sysconfdir}/xdg/AGL/voice-high.json
+}
+
+RPROVIDES_${PN} += "virtual/voice-high-config"
+
diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/alexa.json b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/alexa.json
new file mode 100644
index 00000000..48918015
--- /dev/null
+++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service/alexa.json
@@ -0,0 +1,14 @@
+{
+ "id": "VA-001",
+ "active": true,
+ "name": "Alexa",
+ "api": "alexa-voiceagent",
+ "wakewords": [
+ "alexa",
+ "computer",
+ "echo"
+ ],
+ "activewakeword": "alexa",
+ "description": "Alexa voice assistant by Amazon.",
+ "vendor": "Amazon.com Services Inc"
+}
diff --git a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb
index 689e9d53..40a9185d 100644
--- a/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb
+++ b/meta-speech-framework/meta-aac/recipes-apis/alexa-voiceagent-service/alexa-voiceagent-service_git.bb
@@ -20,6 +20,7 @@ DEPENDS = " \
"
SRC_URI = "git://github.com/alexa/alexa-auto-sdk.git;protocol=https;branch=2.0 \
+ file://alexa.json \
file://0001-remove-library-dependency-copying.patch \
file://0002-update-config.xml.in.patch \
file://0003-update-audio-device-configuration.patch \
@@ -35,10 +36,14 @@ inherit cmake aglwgt
EXTRA_OECMAKE += "-DAAC_HOME=${RECIPE_SYSROOT}/${AAC_PREFIX}"
-# NOTE: curl and opus are from the base SDK libraries, sqlite3 from the
-# core module
-RDEPENDS_${PN} += "libcurl libopus libsqlite3"
+do_install_append() {
+ install -D -m 0644 ${WORKDIR}/alexa.json ${D}${sysconfdir}/xdg/AGL/voiceagents/alexa.json
+}
+
+PACKAGES =+ "${PN}-conf"
-RPROVIDES_${PN} += "virtual/voiceagent"
+FILES_${PN}-conf = "${sysconfdir}/xdg/AGL/voiceagents/*"
-RDEPENDS_${PN} += "virtual/alexa-voiceagent-config"
+# NOTE: curl and opus are from the base SDK libraries, sqlite3 from the
+# core module
+RDEPENDS_${PN} += "libcurl libopus libsqlite3 ${PN}-conf"
diff --git a/meta-speech-framework/meta-aac/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend b/meta-speech-framework/meta-aac/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend
new file mode 100644
index 00000000..43836942
--- /dev/null
+++ b/meta-speech-framework/meta-aac/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend
@@ -0,0 +1,4 @@
+RDEPENDS_${PN} += " \
+ alexa-voiceagent-service \
+ ${@bb.utils.contains("DISTRO_FEATURES", "agl-demo-preload", "virtual/alexa-voiceagent-config", "",d)} \
+"
diff --git a/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config/voice-high.json b/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config/voice-high.json
new file mode 100644
index 00000000..1b72b8c8
--- /dev/null
+++ b/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config/voice-high.json
@@ -0,0 +1 @@
+{ "default": "" }
diff --git a/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config_1.0.bb b/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config_1.0.bb
new file mode 100644
index 00000000..b015dd5d
--- /dev/null
+++ b/meta-speech-framework/recipes-apis/agl-service-voice-high/default-voice-high-config_1.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "High level voice service binding default voiceagent configuration"
+DESCRIPTION = "Default voiceagent JSON configuration file for agl-service-voice-high binding"
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-voice-high"
+SECTION = "apps"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "file://voice-high.json"
+
+inherit allarch
+
+do_compile[noexec] = "1"
+
+do_install () {
+ install -D -m 644 ${WORKDIR}/voice-high.json ${D}${sysconfdir}/xdg/AGL/voice-high.json
+}
+
+RPROVIDES_${PN} += "virtual/voice-high-config"
+
diff --git a/meta-speech-framework/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend b/meta-speech-framework/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend
index 42fc5e58..7e918671 100644
--- a/meta-speech-framework/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend
+++ b/meta-speech-framework/recipes-platform/packagegroups/packagegroup-agl-core-services.bbappend
@@ -1,7 +1,5 @@
-# Checking PREFERRED_RPROVIDER_virtual/voiceagent below is less than ideal, but
-# seems required until there is a usable default voiceagent.
RDEPENDS_${PN} += " \
agl-service-voice-high \
agl-service-voice-high-capabilities \
- ${@oe.utils.conditional("PREFERRED_RPROVIDER_virtual/voiceagent", "", "", "virtual/voiceagent", d)} \
+ ${PREFERRED_RPROVIDER_virtual/voice-high-config} \
"