Archived
1
0
Fork 0

gnu: Add python-vosk.

* gnu/packages/machine-learning.scm (python-vosk): New variable.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Nicolas Graves 2022-09-29 11:00:20 +02:00 committed by Ludovic Courtès
parent fadfeeede5
commit a3e20f35f5
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -3562,3 +3562,43 @@ for different programming languages. It allows quick reconfiguration of
vocabulary for better accuracy, and supports speaker identification beside vocabulary for better accuracy, and supports speaker identification beside
simple speech recognition.") simple speech recognition.")
(license license:asl2.0)))) (license license:asl2.0))))
(define-public python-vosk
(package
(inherit vosk-api)
(name "python-vosk")
(build-system python-build-system)
(propagated-inputs
(list python-cffi python-requests python-tqdm python-srt python-websockets))
(inputs (list vosk-api))
(arguments
(list
#:tests? #f ;; TODO There are tests but not run through Makefile.
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'config
(lambda _
(chdir "python")
(setenv "VOSK_SOURCE" #$vosk-api)))
(add-before 'build 'from-abi-to-api
(lambda _
(substitute* "vosk_builder.py"
(("ffibuilder\\.set_source\\(\"vosk.vosk_cffi\", None\\)")
(string-append
"ffibuilder.set_source(\"vosk.vosk_cffi\", "
"r\"\"\"\n#include<vosk_api.h>\n#include<Python.h>\"\"\",\n\t"
"library_dirs=["
"'" #$vosk-api "/lib'"
"],\n\t"
"libraries=['vosk', 'python3.9'],\n\t"
"include_dirs=["
"'" #$vosk-api "/src'" "])")))
(substitute* "vosk/__init__.py"
(("_c = open_dll\\(\\)")
"")
(("_ffi")
"ffi")
(("from \\.vosk_cffi import ffi as ffi")
"from .vosk_cffi import ffi, lib")
(("_c\\.")
"lib.")))))))))