From 8607d696eca482e025a9ca30ee992707211d1f11 Mon Sep 17 00:00:00 2001 From: Anuj Solanki Date: Wed, 3 Jul 2024 17:28:05 +0200 Subject: Integrate Whisper AI into AGL Voice Agent and Update Dependencies V1: - Removed the following recipes from meta-offline-voiceagent: - python3-scipy - python3-scikit-learn - python3-openblas - python3-lapack - python3-numpy - Updated to use meta-python-ai layer for: - python3-scipy - python3-scikit-learn - python3-openblas - python3-lapack - python3-numpy - python3-pytorch - Added all the required recipes for Whisper AI: - Included recipes for Whisper AI base and tiny model - Updated recipes for: - python3-uvloop - python3-python-crfsuite V2: - Remove vulkan from DISTRO_FEATURES as it has become coditional at upstream - Fix flutter_voiceassistant service - Update recipe of llvmlite to include the wheel for aarch64 also. V3: - Fix llvmlite recipe and some patches - Removes rasa and its dependencies - Fix agl-service-voiceagent.service Bug-AGL: SPEC-5200 Change-Id: I429e7d4b98fbbe1a4f8c1341ac8918d7d177b382 Signed-off-by: Anuj Solanki --- ...pers-for-compilation-with-openblas-0.3.27.patch | 101 +++++++++++++++++++++ .../recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb | 1 + .../vosk-model/vosk-model-small-en-us_0.15.bb | 2 +- 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch (limited to 'meta-offline-voice-agent/recipes-vosk') diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch new file mode 100644 index 00000000..a4d6b6bc --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch @@ -0,0 +1,101 @@ +From e23562daf660dbf2aed0fe0ee3bd47165f73c437 Mon Sep 17 00:00:00 2001 +From: Anuj Solanki +Date: Fri, 7 Jun 2024 16:54:08 +0200 +Subject: [PATCH] Fixup wrappers for compilation with openblas 0.3.27 + +vosk-kaldi if compiled with openblas from meta-python-ai +needs these wrappers adapted to function. + +Upstream-Status: Inaproppriate. +Signed-off-by: Anuj Solanki +--- + src/matrix/cblas-wrappers.h | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/src/matrix/cblas-wrappers.h b/src/matrix/cblas-wrappers.h +index f869ab7e0..0bb306ba9 100644 +--- a/src/matrix/cblas-wrappers.h ++++ b/src/matrix/cblas-wrappers.h +@@ -383,33 +383,33 @@ inline void mul_elements( + // add clapack here + #if !defined(HAVE_ATLAS) + inline void clapack_Xtptri(KaldiBlasInt *num_rows, float *Mdata, KaldiBlasInt *result) { +- stptri_(const_cast("U"), const_cast("N"), num_rows, Mdata, result); ++ LAPACK_stptri(const_cast("U"), const_cast("N"), num_rows, Mdata, result); + } + inline void clapack_Xtptri(KaldiBlasInt *num_rows, double *Mdata, KaldiBlasInt *result) { +- dtptri_(const_cast("U"), const_cast("N"), num_rows, Mdata, result); ++ LAPACK_dtptri(const_cast("U"), const_cast("N"), num_rows, Mdata, result); + } + // + inline void clapack_Xgetrf2(KaldiBlasInt *num_rows, KaldiBlasInt *num_cols, + float *Mdata, KaldiBlasInt *stride, KaldiBlasInt *pivot, + KaldiBlasInt *result) { +- sgetrf_(num_rows, num_cols, Mdata, stride, pivot, result); ++ LAPACK_sgetrf(num_rows, num_cols, Mdata, stride, pivot, result); + } + inline void clapack_Xgetrf2(KaldiBlasInt *num_rows, KaldiBlasInt *num_cols, + double *Mdata, KaldiBlasInt *stride, KaldiBlasInt *pivot, + KaldiBlasInt *result) { +- dgetrf_(num_rows, num_cols, Mdata, stride, pivot, result); ++ LAPACK_dgetrf(num_rows, num_cols, Mdata, stride, pivot, result); + } + + // + inline void clapack_Xgetri2(KaldiBlasInt *num_rows, float *Mdata, KaldiBlasInt *stride, + KaldiBlasInt *pivot, float *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- sgetri_(num_rows, Mdata, stride, pivot, p_work, l_work, result); ++ LAPACK_sgetri(num_rows, Mdata, stride, pivot, p_work, l_work, result); + } + inline void clapack_Xgetri2(KaldiBlasInt *num_rows, double *Mdata, KaldiBlasInt *stride, + KaldiBlasInt *pivot, double *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- dgetri_(num_rows, Mdata, stride, pivot, p_work, l_work, result); ++ LAPACK_dgetri(num_rows, Mdata, stride, pivot, p_work, l_work, result); + } + // + inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, +@@ -417,7 +417,7 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + float *sv, float *Vdata, KaldiBlasInt *vstride, + float *Udata, KaldiBlasInt *ustride, float *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- sgesvd_(v, u, ++ LAPACK_sgesvd(v, u, + num_cols, num_rows, Mdata, stride, + sv, Vdata, vstride, Udata, ustride, + p_work, l_work, result); +@@ -427,7 +427,7 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + double *sv, double *Vdata, KaldiBlasInt *vstride, + double *Udata, KaldiBlasInt *ustride, double *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- dgesvd_(v, u, ++ LAPACK_dgesvd(v, u, + num_cols, num_rows, Mdata, stride, + sv, Vdata, vstride, Udata, ustride, + p_work, l_work, result); +@@ -435,20 +435,20 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + // + void inline clapack_Xsptri(KaldiBlasInt *num_rows, float *Mdata, + KaldiBlasInt *ipiv, float *work, KaldiBlasInt *result) { +- ssptri_(const_cast("U"), num_rows, Mdata, ipiv, work, result); ++ LAPACK_ssptri(const_cast("U"), num_rows, Mdata, ipiv, work, result); + } + void inline clapack_Xsptri(KaldiBlasInt *num_rows, double *Mdata, + KaldiBlasInt *ipiv, double *work, KaldiBlasInt *result) { +- dsptri_(const_cast("U"), num_rows, Mdata, ipiv, work, result); ++ LAPACK_dsptri(const_cast("U"), num_rows, Mdata, ipiv, work, result); + } + // + void inline clapack_Xsptrf(KaldiBlasInt *num_rows, float *Mdata, + KaldiBlasInt *ipiv, KaldiBlasInt *result) { +- ssptrf_(const_cast("U"), num_rows, Mdata, ipiv, result); ++ LAPACK_ssptrf(const_cast("U"), num_rows, Mdata, ipiv, result); + } + void inline clapack_Xsptrf(KaldiBlasInt *num_rows, double *Mdata, + KaldiBlasInt *ipiv, KaldiBlasInt *result) { +- dsptrf_(const_cast("U"), num_rows, Mdata, ipiv, result); ++ LAPACK_dsptrf(const_cast("U"), num_rows, Mdata, ipiv, result); + } + #else + inline void clapack_Xgetrf(MatrixIndexT num_rows, MatrixIndexT num_cols, 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 19206d9a..0630abcb 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 @@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://../COPYING;md5=a10e448a64dbd3723ff3fb2f397fba2e \ SRC_URI = "git://github.com/alphacep/kaldi.git;protocol=https;branch=vosk \ file://0001-Fixes-for-shared-library-compilation.patch \ + file://0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch;patchdir=.. \ " PV = "1.0+git${SRCPV}" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/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 929ad0d4..b33121aa 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-model/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,7 @@ SRC_URI = " \ # License listed on https://alphacephei.com/vosk/models SRC_URI[model.sha256sum] = "30f26242c4eb449f948e42cb302dd7a686cb29a3423a8367f99ff41780942498" -SRC_URI[license.sha256sum] = "46220c6d381bf1c230699077e3a693b2474f4cc768a167f25ced5034ab96890b" +SRC_URI[license.sha256sum] = "1045889590458da11c214de89a4cc21b7eabacdd57e993e1d03105618cacad61" do_install() { install -d ${D}/usr/share/vosk -- cgit 1.2.3-korg