summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Bermond2022-04-04 15:01:32 -0300
committerDaniel Bermond2022-04-04 15:01:32 -0300
commit92a879874d689ba0aada6151c60efcf4bd72c0dc (patch)
tree36bbf902e3d5f40c62f634c785740ac417c8dbad
downloadaur-92a879874d689ba0aada6151c60efcf4bd72c0dc.tar.gz
Initial commit
-rw-r--r--.SRCINFO28
-rw-r--r--PKGBUILD117
2 files changed, 145 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..5c941d01ef14
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,28 @@
+pkgbase = vosk-api-git
+ pkgdesc = Offline speech recognition toolkit (git version)
+ pkgver = 0.3.32.r48.g2daf67f
+ pkgrel = 1
+ url = https://alphacephei.com/vosk/
+ arch = x86_64
+ license = Apache
+ makedepends = git
+ makedepends = cmake
+ makedepends = gradle
+ makedepends = python
+ makedepends = python-cffi
+ makedepends = python-setuptools
+ depends = gcc-libs
+ optdepends = java-runtime: for java bindings
+ optdepends = python-cffi: for python module
+ source = git+https://github.com/alphacep/vosk-api.git
+ source = git+https://github.com/xianyi/OpenBLAS.git
+ source = git+https://github.com/alphacep/clapack.git
+ source = git+https://github.com/alphacep/openfst.git
+ source = git+https://github.com/alphacep/kaldi.git#branch=vosk
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+ sha256sums = SKIP
+
+pkgname = vosk-api-git
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..516823491fe1
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,117 @@
+# Maintainer: Daniel Bermond <dbermond@archlinux.org>
+
+pkgname=vosk-api-git
+pkgver=0.3.32.r48.g2daf67f
+pkgrel=1
+pkgdesc='Offline speech recognition toolkit (git version)'
+arch=('x86_64')
+url='https://alphacephei.com/vosk/'
+license=('Apache')
+depends=('gcc-libs')
+optdepends=('java-runtime: for java bindings'
+ 'python-cffi: for python module')
+makedepends=('git' 'cmake' 'gradle' 'python' 'python-cffi' 'python-setuptools')
+source=('git+https://github.com/alphacep/vosk-api.git'
+ 'git+https://github.com/xianyi/OpenBLAS.git'
+ 'git+https://github.com/alphacep/clapack.git'
+ 'git+https://github.com/alphacep/openfst.git'
+ 'git+https://github.com/alphacep/kaldi.git#branch=vosk')
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+prepare() {
+ local _curl='curl -sqgb "" -fLC - --retry 3 --retry-delay 3'
+ local _url='https://raw.githubusercontent.com/alphacep/vosk-api/master/travis/Dockerfile.manylinux'
+ git -C OpenBLAS config --local advice.detachedHead false
+ git -C clapack config --local advice.detachedHead false
+ git -C OpenBLAS checkout "$(awk '/xianyi\/OpenBLAS/ { print $5 }' <($_curl "$_url"))"
+ git -C clapack checkout "$(awk '/alphacep\/clapack/ { print $5 }' <($_curl "$_url"))"
+
+ ln -sf ../../OpenBLAS kaldi/tools/OpenBLAS
+ ln -sf ../../clapack kaldi/tools/clapack
+ ln -sf ../../openfst kaldi/tools/openfst
+
+ autoreconf -fi openfst
+}
+
+pkgver() {
+ git -C vosk-api describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
+}
+
+build() {
+ local _file
+ export CFLAGS+=' -ffat-lto-objects'
+ export CXXFLAGS+=' -ffat-lto-objects'
+
+ # openblas
+ make -C OpenBLAS ONLY_CBLAS='1' DYNAMIC_ARCH='1' TARGET='NEHALEM' USE_LOCKING='1' USE_THREAD='0' all
+ make -C OpenBLAS PREFIX="${srcdir}/OpenBLAS/install" install
+
+ # clapack
+ CFLAGS+=' -Wno-error=format-security -fcommon' cmake -B build-clapack -S clapack -Wno-dev
+ make -C build-clapack
+ while read -r -d '' _file
+ do
+ cp -af "$_file" "${srcdir}/OpenBLAS/install/lib"
+ done < <(find build-clapack -type f -name '*.a' -print0)
+
+ # openfst
+ cd openfst
+ ./configure \
+ --prefix="${srcdir}/kaldi/tools/openfst" \
+ --enable-static \
+ --enable-shared \
+ --enable-far \
+ --enable-ngram-fsts \
+ --enable-lookahead-fsts \
+ --with-pic \
+ --disable-bin
+ make
+ make install
+
+ # kaldi
+ cd "${srcdir}/kaldi/src"
+ ./configure --mathlib='OPENBLAS_CLAPACK' --shared --use-cuda='no'
+ sed -i 's/-msse[[:space:]]-msse2/-msse -msse2/g' kaldi.mk
+ sed -i 's/[[:space:]]-O1[[:space:]]/ -O3 /g' kaldi.mk
+ make online2 lm rnnlm
+ while read -r -d '' _file
+ do
+ rm "$_file"
+ done < <(find "${srcdir}/kaldi" -type f -name '*.o' -print0)
+
+ # vosk-api
+ export CFLAGS="${CFLAGS/ -ffat-lto-objects/}"
+ export CXXFLAGS="${CXXFLAGS/ -ffat-lto-objects/}"
+ make -C "${srcdir}/vosk-api/src" \
+ EXTRA_LDFLAGS="$LDFLAGS" \
+ KALDI_ROOT="${srcdir}/kaldi" \
+ OPENFST_ROOT="${srcdir}/kaldi/tools/openfst" \
+ OPENBLAS_ROOT="${srcdir}/kaldi/tools/OpenBLAS/install"
+
+ # java bindings
+ gradle -p "${srcdir}/vosk-api/java/lib" clean assemble
+
+ # python module
+ cd "${srcdir}/vosk-api/python"
+ python setup.py build
+}
+
+package() {
+ install -d -m755 "${pkgdir}/usr/lib"
+ install -D -m644 vosk-api/src/vosk_api.h -t "${pkgdir}/usr/include"
+ cp -dr --no-preserve='ownership' vosk-api/src/*.so* "${pkgdir}/usr/lib"
+
+ local _ver
+ _ver="$(awk "/^version[[:space:]]=/ { gsub(/'/, \"\", \$3); print \$3 }" vosk-api/java/lib/build.gradle)"
+ install -D -m644 "vosk-api/java/lib/build/libs/vosk-${_ver}.jar" "${pkgdir}/usr/share/java/vosk.jar"
+
+ local _pyver
+ _pyver="$(python -c 'import sys; print("%s.%s" %sys.version_info[0:2])')"
+ cd vosk-api/python
+ python setup.py install --root="$pkgdir" --skip-build --optimize='1'
+ ln -sf ../../../libvosk.so "${pkgdir}/usr/lib/python${_pyver}/site-packages/vosk/libvosk.so"
+}