WIP5 jsmoeller/voice-wip2
authoramanarora_09 <aman.arora9848@gmail.com>
Tue, 28 Mar 2023 20:27:17 +0000 (22:27 +0200)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Thu, 30 Mar 2023 14:27:26 +0000 (16:27 +0200)
Change-Id: I31ac4adc874a206e6e598ba116523ecc7eb99fc9
Signed-off-by: amanarora_09 <aman.arora9848@gmail.com>
15 files changed:
meta-offline-voice-agent/dynamic-layers/meta-agl-demo/recipes-demo/flutter-vosk-demo/flutter-vosk-demo_git.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-python/python3-vosk-websocket-server/python3-vosk-websocket-server_git.bb
meta-offline-voice-agent/recipes-python/python3-wavio/python3-wavio_0.0.4.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-python/vosk-grpc-custom-server/vosk-grpc-custom-server_git.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-python/vosk-server-demo-qml/vosk-server-demo-qml_git.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb
meta-offline-voice-agent/recipes-vosk/vosk-model-small-de/vosk-model-small-de_0.15.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-model-small-en-in/vosk-model-small-en-in_0.4.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-model-small-en-us/vosk-model-small-en-us_0.15.bb
meta-offline-voice-agent/recipes-vosk/vosk-model-small-es/vosk-model-small-es_0.22.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-model-small-fr/vosk-model-small-fr_0.22.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-model-small-it/vosk-model-small-it_0.22.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-model-small-ja/vosk-model-small-ja_0.22.bb [new file with mode: 0644]
meta-offline-voice-agent/recipes-vosk/vosk-server/vosk-server_git.bb
templates/feature/agl-offline-voice-agent/50_local.conf.inc

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 (file)
index 0000000..29721ba
--- /dev/null
@@ -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-custom-server"
index 1a77f7d..f3c594b 100644 (file)
@@ -11,13 +11,6 @@ SRCREV = "70f3d5321a40f2f5dffe9c833bc1fac4b3b451e7"
 
 S = "${WORKDIR}/git"
 
-RDEPENDS:${PN} += " \
-    vosk \
-    python3-vosk-api \
-    python3-websockets \
-    virtual/vosk-model \
-"
-
 do_configure () {
        :
 }
@@ -31,3 +24,10 @@ do_install () {
        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 \
+"
\ 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 (file)
index 0000000..6fbb22c
--- /dev/null
@@ -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-custom-server_git.bb b/meta-offline-voice-agent/recipes-python/vosk-grpc-custom-server/vosk-grpc-custom-server_git.bb
new file mode 100644 (file)
index 0000000..76580ac
--- /dev/null
@@ -0,0 +1,41 @@
+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 () {
+       :
+}
+
+do_compile () {
+       :
+}
+
+do_install () {
+       install -d ${D}${libdir}/vosk-grpc-custom-server
+       cp ${S}/record_server_grpc.py ${D}${libdir}/vosk-grpc-custom-server/
+    cp ${S}/recognize_pb2_grpc.py ${D}${libdir}/vosk-grpc-custom-server/
+    cp ${S}/recognize.proto ${D}${libdir}/vosk-grpc-custom-server/
+    cp ${S}/recognize_pb2.py ${D}${libdir}/vosk-grpc-custom-server/
+    chmod a+x ${D}${libdir}/vosk-grpc-custom-server/record_server_grpc.py
+}
+
+FILES:${PN} += " /usr/lib/vosk-grpc-custom-server "
\ No newline at end of file
diff --git a/meta-offline-voice-agent/recipes-python/vosk-server-demo-qml/vosk-server-demo-qml_git.bb b/meta-offline-voice-agent/recipes-python/vosk-server-demo-qml/vosk-server-demo-qml_git.bb
new file mode 100644 (file)
index 0000000..db32719
--- /dev/null
@@ -0,0 +1,41 @@
+DESCRIPTION = "Currently, only for testing vosk websocket server."
+SUMMARY = "A simple demo consisting of a websocket PyQt client and UI made using QML."
+HOMEPAGE = "https://github.com/amanarora9848/vosk-server-py-qt-demo"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b21e7c146caa10030fea1d5525982206"
+
+SRC_URI = "git://github.com/amanarora9848/vosk-server-py-qt-demo;protocol=https;branch=main"
+
+PV = "1.0+git${SRCPV}"
+SRCREV = "877c4b19411a42c35bbd345004564449a24304d0"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} += " \
+    python3-pyqt5 \
+    python3-wavio \
+    python3-websockets \
+    python3-sounddevice \
+    wayland \
+"
+
+do_configure () {
+       :
+}
+
+do_compile () {
+       :
+}
+
+do_install () {
+       install -d ${D}${libdir}/vosk-server-demo-qml-pyqt
+       cp ${S}/main.py ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    cp ${S}/main.pyproject ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    cp ${S}/main.pyproject.user ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    cp ${S}/record_voice_send.py ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    cp ${S}/sendwav.py ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    cp ${S}/voiceRecognition.qml ${D}${libdir}/vosk-server-demo-qml-pyqt/
+    chmod a+x ${D}${libdir}/vosk-server-demo-qml-pyqt/main.py
+}
+
+FILES:${PN} += " /usr/lib/vosk-server-demo-qml-pyqt "
index 45cf71f..8ac72d7 100644 (file)
@@ -9,7 +9,8 @@ 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"
 
diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model-small-de/vosk-model-small-de_0.15.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-de/vosk-model-small-de_0.15.bb
new file mode 100644 (file)
index 0000000..c65d05b
--- /dev/null
@@ -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-small-en-in/vosk-model-small-en-in_0.4.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-en-in/vosk-model-small-en-in_0.4.bb
new file mode 100644 (file)
index 0000000..5a886e0
--- /dev/null
@@ -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"
index 3a408a6..b18f880 100644 (file)
@@ -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-small-es/vosk-model-small-es_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-es/vosk-model-small-es_0.22.bb
new file mode 100644 (file)
index 0000000..9798d9a
--- /dev/null
@@ -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-small-fr/vosk-model-small-fr_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-fr/vosk-model-small-fr_0.22.bb
new file mode 100644 (file)
index 0000000..0157a22
--- /dev/null
@@ -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-small-it/vosk-model-small-it_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-it/vosk-model-small-it_0.22.bb
new file mode 100644 (file)
index 0000000..e7d1c43
--- /dev/null
@@ -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-small-ja/vosk-model-small-ja_0.22.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model-small-ja/vosk-model-small-ja_0.22.bb
new file mode 100644 (file)
index 0000000..dc2292d
--- /dev/null
@@ -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"
index 337cee4..b0efcae 100644 (file)
@@ -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"
index 581ad97..6253f5f 100644 (file)
@@ -4,11 +4,8 @@ FORTRAN:forcevariable = ",fortran"
 RUNTIMETARGET:append:pn-gcc-runtime = " libquadmath"
 
 # FIXME check if needed and/or submit upstream
-BBCLASSEXTEND:pn-python3-charset-normalizer = "native nativesdk"
+#BBCLASSEXTEND:pn-python3-charset-normalizer = "native nativesdk"
 
-IMAGE_INSTALL:append = " python3-vosk-api vosk-kaldi vosk vosk-server python3-vosk-websocket-server python3-sounddevice ptest-runner"
+IMAGE_INSTALL:append = " python3-vosk-api vosk-kaldi vosk vosk-server python3-vosk-websocket-server python3-sounddevice flutter-vosk-demo"
 
 PREFERRED_PROVIDER_virtual/vosk-model ?= "vosk-model-small-en-us"
-
-DISTRO_FEATURES:append = " ptest"
-EXTRA_IMAGE_FEATURES += "ptest-pkgs"