diff options
author | amanarora_09 <aman.arora9848@gmail.com> | 2023-03-28 22:27:17 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2023-08-08 20:38:17 +0200 |
commit | 8eb3ea414f84d3f28c14231ee8dda7876295e48e (patch) | |
tree | e11001ae1228054657ec475add06f1278d7a900a /meta-offline-voice-agent | |
parent | fe8c4a516b3bff5f531caebd43c1f1ac137b9959 (diff) |
Rework and update offline voice agent
This brings the voice agent to the state shown at AMM and EW.
Change-Id: I31ac4adc874a206e6e598ba116523ecc7eb99fc9
Signed-off-by: amanarora_09 <aman.arora9848@gmail.com>
Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-offline-voice-agent')
15 files changed, 245 insertions, 40 deletions
diff --git a/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-demo/flutter-vosk-demo/flutter-vosk-demo_git.bb b/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-demo/flutter-vosk-demo/flutter-vosk-demo_git.bb new file mode 100644 index 00000000..78aef52e --- /dev/null +++ b/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-demo/flutter-vosk-demo/flutter-vosk-demo_git.bb @@ -0,0 +1,33 @@ +SUMMARY = "Flutter VOSK Demo" +DESCRIPTION = "A Flutter based Offline Speech Recognition Demo Application using the VOSK API." + +HOMEPAGE = "https://github.com/amanarora9848/voicerecognizer-gst-grpc.git" + +BUGTRACKER = "https://github.com/amanarora9848/voicerecognizer-gst-grpc.git" + +SECTION = "graphics" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=13e8863a069f2c314d9251336e4afcbf" + + +SRC_URI = "git://github.com/amanarora9848/voicerecognizer-gst-grpc.git;protocol=https;branch=master" + +SRCREV = "${AUTOREV}" +S = "${WORKDIR}/git/app" + +inherit agl-app flutter-app + +# flutter-app +############# +PUBSPEC_APPNAME = "flutter_vosk_demo" +FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter" +FLUTTER_BUILD_ARGS = "bundle -v" + +# agl-app +######### +AGL_APP_TEMPLATE = "agl-app-flutter" +AGL_APP_ID = "flutter_vosk_demo" +AGL_APP_NAME = "VOSK-DEMO" + +RDEPENDS:${PN} = "vosk-grpc-server" diff --git a/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-platform/images/agl-demo-platform-voice.bb b/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-platform/images/agl-demo-platform-voice.bb deleted file mode 100644 index 6e39a7f0..00000000 --- a/meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-platform/images/agl-demo-platform-voice.bb +++ /dev/null @@ -1,3 +0,0 @@ -require recipes-platform/images/agl-ivi-demo-platform.bb - -IMAGE_INSTALL:append = "python3-vosk-api vosk vosk-server gcc make cmake autoconf automake gcc-c++ boost-dev"
\ No newline at end of file diff --git a/meta-offline-voice-agent/recipes-python/python3-vosk-websocket-server/python3-vosk-websocket-server_git.bb b/meta-offline-voice-agent/recipes-python/python3-vosk-websocket-server/python3-vosk-websocket-server_git.bb index 1a77f7d2..1cdf89c5 100644 --- a/meta-offline-voice-agent/recipes-python/python3-vosk-websocket-server/python3-vosk-websocket-server_git.bb +++ b/meta-offline-voice-agent/recipes-python/python3-vosk-websocket-server/python3-vosk-websocket-server_git.bb @@ -11,23 +11,18 @@ SRCREV = "70f3d5321a40f2f5dffe9c833bc1fac4b3b451e7" S = "${WORKDIR}/git" +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + install -d ${D}${bindir} + cp ${S}/websocket/asr_server.py ${D}${bindir}/vosk-websocket-python.py + chmod a+x ${D}${bindir}/vosk-websocket-python.py +} + RDEPENDS:${PN} += " \ vosk \ python3-vosk-api \ python3-websockets \ virtual/vosk-model \ -" - -do_configure () { - : -} - -do_compile () { - : -} - -do_install () { - install -d ${D}${bindir} - cp ${S}/websocket/asr_server.py ${D}${bindir}/vosk-websocket-python.py - chmod a+x ${D}${bindir}/vosk-websocket-python.py -} +"
\ No newline at end of file diff --git a/meta-offline-voice-agent/recipes-python/python3-wavio/python3-wavio_0.0.4.bb b/meta-offline-voice-agent/recipes-python/python3-wavio/python3-wavio_0.0.4.bb new file mode 100644 index 00000000..6fbb22c7 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/python3-wavio/python3-wavio_0.0.4.bb @@ -0,0 +1,19 @@ +SUMMARY = "A Python module for reading and writing WAV files using numpy arrays." +HOMEPAGE = "https://github.com/WarrenWeckesser/wavio" + +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://${WORKDIR}/git/README.rst;beginline=48;endline=48;md5=bc752f76db0a3e24c17afcc8dda3d553" +# License listed in README.rst at https://github.com/WarrenWeckesser/wavio + +SRC_URI = "git://github.com/WarrenWeckesser/wavio;protocol=https;branch=master" + +PV = "0.0.4+git${SRCPV}" +SRCREV = "54699acdde2cb4f68fbe3dc5847a74ab796662e1" + +S = "${WORKDIR}/git" + +inherit setuptools3 + +DEPENDS += "python3-numpy" + +RDEPENDS:${PN} += "python3-audio python3-core python3-numpy" diff --git a/meta-offline-voice-agent/recipes-python/vosk-grpc-custom-server/vosk-grpc-server_git.bb b/meta-offline-voice-agent/recipes-python/vosk-grpc-custom-server/vosk-grpc-server_git.bb new file mode 100644 index 00000000..0a32a0cc --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/vosk-grpc-custom-server/vosk-grpc-server_git.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "WebSocket, gRPC and WebRTC speech recognition server based on Vosk and Kaldi libraries" +SUMMARY = "This is a server for highly accurate offline speech recognition using Kaldi and Vosk-API." +HOMEPAGE = "https://github.com/alphacep/vosk-server" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://../LICENSE;md5=13e8863a069f2c314d9251336e4afcbf" + +SRC_URI = "git://github.com/amanarora9848/voicerecognizer-gst-grpc;protocol=https;branch=master" + +PV = "1.0+git${SRCPV}" +SRCREV = "d28da4cd89a5dfff823f1358816d0ff4791f8d28" + +S = "${WORKDIR}/git/python-server" + +RDEPENDS:${PN} += " \ + vosk \ + python3-vosk-api \ + python3-grpcio \ + python3-protobuf \ + virtual/vosk-model \ + python3-pycairo \ + python3-pygobject \ +" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install () { + install -d ${D}${libdir}/vosk-grpc-server + cp ${S}/record_server_grpc.py ${D}${libdir}/vosk-grpc-server/ + cp ${S}/recognize_pb2_grpc.py ${D}${libdir}/vosk-grpc-server/ + cp ${S}/recognize.proto ${D}${libdir}/vosk-grpc-server/ + cp ${S}/recognize_pb2.py ${D}${libdir}/vosk-grpc-server/ + chmod a+x ${D}${libdir}/vosk-grpc-server/record_server_grpc.py +} + +FILES:${PN} += " /usr/lib/vosk-grpc-server "
\ No newline at end of file diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb index 45cf71ff..16ed3398 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb @@ -9,11 +9,13 @@ SRC_URI = "git://github.com/alphacep/kaldi.git;protocol=https;branch=vosk \ " PV = "1.0+git${SRCPV}" -SRCREV = "76cd51d44c0a61e3905c35cadb2ec5f54f3e42d1" +#SRCREV = "76cd51d44c0a61e3905c35cadb2ec5f54f3e42d1" +SRCREV = "${AUTOREV}" S = "${WORKDIR}/git/src" DEPENDS += "openblas vosk-openfst" + inherit python3native ALLOW_EMPTY_${PN} = "1" @@ -22,32 +24,23 @@ MYCONF = "--mathlib=OPENBLAS --static --shared --use-cuda=no --fst-root=${STAGIN # remove x86-specific optimizations do_configure:prepend:aarch64(){ - sed -i -e "s#-msse -msse2##g" ${S}/makefiles/linux_openblas.mk - } do_configure:prepend:arm(){ - sed -i -e "s#-msse -msse2##g" ${S}/makefiles/linux_openblas.mk - } do_configure() { - ./configure ${MYCONF} - } do_compile() { - make ${PARALLEL_MAKE} - } do_install() { - install -d ${D}${libdir} for i in lib/*.so ; do diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-de_0.15.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-de_0.15.bb new file mode 100644 index 00000000..c65d05bc --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-de_0.15.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight wideband model 'de'" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=64;endline=64;md5=b4197dee31a6934aaf221359839c12e1" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "b7e53c90b1f0a38456f4cd62b366ecd58803cd97cd42b06438e2c131713d5e43" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-de-0.15/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-de-0.15 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-in_0.4.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-in_0.4.bb new file mode 100644 index 00000000..5a886e0a --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-in_0.4.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight Indian English model for mobile applications" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=44;endline=44;md5=a9131c3e00accfcddf94bff9e8b43018" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-en-in-0.4.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "20663dcac4d5cb783a579c54d98339344a688e4ec6e1b4a4b059fd1235454cc7" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-en-in-0.4/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-en-in-0.4 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model-small-en-us/vosk-model-small-en-us_0.15.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb index 3a408a65..b18f8801 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-model-small-en-us/vosk-model-small-en-us_0.15.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb @@ -11,7 +11,8 @@ SRC_URI = " \ # License listed on https://alphacephei.com/vosk/models SRC_URI[model.sha256sum] = "30f26242c4eb449f948e42cb302dd7a686cb29a3423a8367f99ff41780942498" -SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" +SRC_URI[license.sha256sum] = "69e091d43baae61f93c586d939ff7c1997415964621614add8aed06590193f47" +# SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" (previously) do_install() { install -d ${D}/usr/share/vosk diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-es_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-es_0.22.bb new file mode 100644 index 00000000..9798d9ab --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-es_0.22.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight wideband model 'es'" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=66;endline=66;md5=dafff175a878d17393d30812eac57e87" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-es-0.22.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "97d2b9f062a4d363ad1d71f011cc77e073773d749f1e5cd21a172c8ca28b0a56" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-es-0.22/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-es-0.22 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-fr_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-fr_0.22.bb new file mode 100644 index 00000000..0157a225 --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-fr_0.22.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight wideband model 'fr'" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=56;endline=56;md5=b49bbab5d6832157cad0e0dbb924a5b2" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-fr-0.22.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "cabf6180e177eb9b3a9a9d43a437bd5e549f3a7d09525e5d69a3fed787be12ad" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-fr-0.22/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-fr-0.22 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-it_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-it_0.22.bb new file mode 100644 index 00000000..e7d1c43e --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-it_0.22.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight wideband model 'en-us'" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=77;endline=77;md5=5738be531d1fac9b1088702e7d1f9499" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-it-0.22.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "9ec65e75861d1c6c2e457cccd932705340dcdf233f5b239f00733b4de0bf3267" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-it-0.22/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-it-0.22 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-ja_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-ja_0.22.bb new file mode 100644 index 00000000..dc2292dd --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-ja_0.22.bb @@ -0,0 +1,23 @@ +SUMMARY = "Lightweight wideband model for Japanese" +HOMEPAGE = "https://alphacephei.com/vosk/" +LICENSE = "Apache-2.0" +# LIC_URL = "${COMMON_LICENSE_DIR}/Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/models.md;beginline=105;endline=105;md5=d6585d5b106f271e40f0f6befafc9da9" + +SRC_URI = " \ + https://alphacephei.com/vosk/models/vosk-model-small-ja-0.22.zip;name=model \ + https://raw.githubusercontent.com/alphacep/vosk-space/master/models.md;name=license \ + " +# License listed on https://alphacephei.com/vosk/models + +SRC_URI[model.sha256sum] = "efa092d280153a77615e9e0c7d7283e93e600de3d19d3bec686c57ef19d52eac" +SRC_URI[license.sha256sum] = "3fbe0ee1fa914cb4b1cea2f2d7201a155884727cd0afbb51a267b66a73cb3444" + +do_install() { + install -d ${D}/usr/share/vosk + cp -R ${WORKDIR}/vosk-model-small-ja-0.22/ ${D}/usr/share/vosk/ +} + +FILES:${PN} += " /usr/share/vosk /usr/share/vosk/vosk-model-small-ja-0.22 " + +# RPROVIDES:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-server/vosk-server_git.bb b/meta-offline-voice-agent/recipes-vosk/vosk-server/vosk-server_git.bb index 337cee46..b0efcae0 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-server/vosk-server_git.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk-server/vosk-server_git.bb @@ -29,4 +29,4 @@ do_install () { cp websocket-cpp/vosk-websocket-cpp ${D}${bindir} } -RDEPENDS:${PN} += "virtual/vosk-model"
\ No newline at end of file +RDEPENDS:${PN} += "virtual/vosk-model" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk/vosk_0.3.42.bb b/meta-offline-voice-agent/recipes-vosk/vosk/vosk_0.3.42.bb index bf4ffe31..a563c6fa 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk/vosk_0.3.42.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk/vosk_0.3.42.bb @@ -14,24 +14,18 @@ S = "${WORKDIR}/git/src" DEPENDS += " vosk-kaldi vosk-openfst openblas" -RDEPENDS:${PN} += " \ -" +#RDEPENDS:${PN} += "" CFLAGS:append = " -I${STAGING_INCDIR}/kaldi -g " LDFLAGS:remove = "-Wl,--as-needed" -do_configure(){ - : -} +do_configure[noexec] = "1" do_compile(){ - make KALDI_ROOT=${STAGING_INCDIR}/kaldi/ OPENFST_ROOT=${STAGING_INCDIR} OPENBLAS_ROOT=${STAGING_INCDIR} USE_SHARED=1 EXTRA_CFLAGS="${CFLAGS}" EXTRA_LDFLAGS="${LDFLAGS}" ${PARALLEL_MAKE} - } do_install(){ - install -d ${D}${libdir} install -m 0644 libvosk.so.0.3.42 ${D}${libdir} cd ${D}${libdir} @@ -41,9 +35,8 @@ do_install(){ install -d ${D}${includedir}/vosk for i in *.h ; do - install -m 0644 $i ${D}${includedir}/vosk/ + install -m 0644 $i ${D}${includedir}/vosk/ done - } ERROR_QA:remove = "dev-deps" |