* [bug#72027] [PATCH] gnu: Add whisper-cpp.
@ 2024-07-10 4:53 Andy Tai
2024-07-10 5:55 ` [bug#72027] [PATCH v2] " Andy Tai
` (10 more replies)
0 siblings, 11 replies; 15+ messages in thread
From: Andy Tai @ 2024-07-10 4:53 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 8ca9a6376e..61c25b49da 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -5982,6 +5982,29 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (properties '((tunable? . #true))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++ ")
+ (description "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: e13f7d48e5b989f5dbd27c19ac81989ec6b3ec6e
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v2] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
@ 2024-07-10 5:55 ` Andy Tai
2024-07-10 6:16 ` [bug#72027] [PATCH v3] " Andy Tai
` (9 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-07-10 5:55 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 33 +++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 8ca9a6376e..2af3c188c2 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5982,6 +5984,37 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE")))
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TO DO
+
+ ;; (inputs (list ffmpeg openblas sdl2)) ;TO DO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 71694363f6cc79e44955acbd9f7ca108e658caca
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v3] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
2024-07-10 5:55 ` [bug#72027] [PATCH v2] " Andy Tai
@ 2024-07-10 6:16 ` Andy Tai
2024-07-11 6:46 ` [bug#72027] [PATCH v4] " Andy Tai
` (8 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-07-10 6:16 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 34 +++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 8ca9a6376e..0650c9620a 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5982,6 +5984,38 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE"
+ "-DWHISPER_SDL2=TRUE")))
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TO DO
+
+ (inputs (list sdl2)) ; ffmpeg openblas ;TO DO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 71694363f6cc79e44955acbd9f7ca108e658caca
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v4] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
2024-07-10 5:55 ` [bug#72027] [PATCH v2] " Andy Tai
2024-07-10 6:16 ` [bug#72027] [PATCH v3] " Andy Tai
@ 2024-07-11 6:46 ` Andy Tai
2024-07-12 5:44 ` [bug#72027] [PATCH v5] " Andy Tai
` (7 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-07-11 6:46 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=a, Size: 3025 bytes --]
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 42 +++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 303e123a15..b6ceca6cb0 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5990,6 +5992,46 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TO DO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ #~(add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ `((substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ #~()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TO DO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 8cbc5e5bf0ca35f12cf5bbf123efbc3b6a57ad44
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v5] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (2 preceding siblings ...)
2024-07-11 6:46 ` [bug#72027] [PATCH v4] " Andy Tai
@ 2024-07-12 5:44 ` Andy Tai
2024-08-19 5:01 ` [bug#72027] [PATCH v6] " Andy Tai
` (6 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-07-12 5:44 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 43 +++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 3680cab044..0471db8d46 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5990,6 +5992,47 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TO DO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TO DO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 2d6a3799fcda5c017f653c6e96b91964b07a7ee0
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v6] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (3 preceding siblings ...)
2024-07-12 5:44 ` [bug#72027] [PATCH v5] " Andy Tai
@ 2024-08-19 5:01 ` Andy Tai
2024-08-23 14:15 ` Juliana Sims via Guix-patches via
` (5 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-08-19 5:01 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 43 +++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4c5b713cbf..09e83a7636 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5937,6 +5939,47 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TO DO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TO DO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "Port of OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 58a839273d1e4fac2b3a0ec456aabdf82deaa124
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v6] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (4 preceding siblings ...)
2024-08-19 5:01 ` [bug#72027] [PATCH v6] " Andy Tai
@ 2024-08-23 14:15 ` Juliana Sims via Guix-patches via
2024-08-23 16:05 ` Juliana Sims via Guix-patches via
2024-08-28 2:53 ` Andy Tai
2024-08-29 4:06 ` [bug#72027] [PATCH v7] " Andy Tai
` (4 subsequent siblings)
10 siblings, 2 replies; 15+ messages in thread
From: Juliana Sims via Guix-patches via @ 2024-08-23 14:15 UTC (permalink / raw)
To: atai; +Cc: 72027
Hi Andy,
Thanks for submitting this patch! I'm suffering from RSI pain at the
moment and was tasked, as I ease back into working, with packaging this
and the associated Emacs mode to help avoid RSI issues in the future.
Seeing there is already a patch up, I am quite excited and thankful I
don't have to write one myself!
I had planned to review this patch, but I notice there are several
TODOs. So instead, I will ask: what is the status of this patch? Is
it in a state where it is ready for review, or is there more work to be
done first? If it is the latter, what (if anything) can I do to help
out?
Thanks,
Juli
^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v6] gnu: Add whisper-cpp.
2024-08-23 14:15 ` Juliana Sims via Guix-patches via
@ 2024-08-23 16:05 ` Juliana Sims via Guix-patches via
2024-08-28 2:53 ` Andy Tai
1 sibling, 0 replies; 15+ messages in thread
From: Juliana Sims via Guix-patches via @ 2024-08-23 16:05 UTC (permalink / raw)
To: atai; +Cc: 72027
Well, I know I just asked if this was ready for review, but I figured
I'd go ahead and do some "low-hanging fruit review" while I wait for
you to get a chance to respond ;)
Fortunately, most of what I've noticed so far is minor and stylistic.
There are some bigger, discussion-opening comments near the end.
Firstly, TODO comments are conventionally spelled as one word. This is
not grammatically correct, nor is it a requirement, but it is the
convention and folks searching files for such comments will likely
search for "TODO" rather than "TO DO".
Secondly, the synopsis should probably either drop the "Port of" or
change "in" to "to". I don't think this is a major issue; it just
flows better like that imo. I wouldn't oppose merging over this so if
you prefer it the way it is, that's fine.
Next, the description wants expansion. It should be three to five
sentences. The sentence there now is a fine start, though it needs
ending punctuation. Perhaps a sentence explaining how this package can
be used ("whisper-cpp can be integrated with other programs to provide
speech-to-text support" or something) and one explaining what makes it
unique ("because whisper-cpp uses a leading speech recognition model,
it is able to perform speech recognition rapidly with relatively few
resources"). You could perhaps mention that it can run on CPU as well
as GPU, that it offers some integrations with certain hardware, or so
on. Whatever you think is important or interesting; these are just
some ideas :)
Now we enter the discussion-launching comments.
I notice that ggml is vendored. This one is tricky. Firstly, there is
no standalone ggml package (yet; I saw your patch 65284). Usually,
Guix only asks that dependencies be unvendored if there is already a
standalone package for the dependency, so unless and until that is
merged there is no real issue. Secondly, though, and this touches on
the ggml patches, it seems that there are no formal releases of ggml
yet, and development is happening in the repositories for whisper-cpp
and llama-cpp as well as its own repository. It seems these three
versions of ggml are all slightly out of sync with each other. It
would be nice if upstream used git submodules to ensure their work was
synchronized. Alas, we as Guix can't do anything about that, and we
must ensure the packages we offer work correctly. The inconsistencies
between these versions of ggml make me think packaging it separately
would risk breakage. With that in mind, might it be best to drop the
standalone ggml patchset and just let llama-cpp and whisper-cpp vendor
their versions? While suboptimal because it results in building "the
same package" multiple times, I would argue that the divergence in the
code means they are not, in fact, the same package.
Finally, is this package complete? Looking at the store directory for
the package, I see headers and the like but no actual models. Is this
sufficient for using the inference? Are client libraries or programs
supposed to install models themselves? Or can this package be used to
generate models as described in the project's README? If not, should
it be able to? I am admittedly fairly ignorant about the machine
learning ecosystem, so feel free to explain as much as you think may be
necessary. My goal in these questions is ensuring users get what they
expect from this package.
Relatedly, if this package is complete but requires further setup, I
would strongly support explaining that in the package description. As
a user, I've encountered a few packages that require more setup and
don't mention that they do, and I'm then frustrated and confused when I
learn this from trying to use the package and then have no support from
Guix in trying to make things work properly. (Another step beyond this
may be offering a system service which performs configuration, but that
can be a future, separate patch.)
To circle back to what I mentioned in my first email, I would like to
package the whisper.el Emacs mode[1]. Currently, whisper.el plans to
install and compile whisper.cpp and its models itself; I think we as
Guix should make this unnecessary for an imagined future emacs-whisper
package.
Looking forward to hearing from you,
Juli
[1] https://github.com/natrys/whisper.el
^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v6] gnu: Add whisper-cpp.
2024-08-23 14:15 ` Juliana Sims via Guix-patches via
2024-08-23 16:05 ` Juliana Sims via Guix-patches via
@ 2024-08-28 2:53 ` Andy Tai
2024-08-29 4:11 ` Andy Tai
1 sibling, 1 reply; 15+ messages in thread
From: Andy Tai @ 2024-08-28 2:53 UTC (permalink / raw)
To: Juliana Sims; +Cc: 72027
I will take a look of your review. Thanks
On Fri, Aug 23, 2024 at 7:16 AM Juliana Sims <juli@incana.org> wrote:
>
> Hi Andy,
>
> Thanks for submitting this patch! I'm suffering from RSI pain at the
> moment and was tasked, as I ease back into working, with packaging this
> and the associated Emacs mode to help avoid RSI issues in the future.
> Seeing there is already a patch up, I am quite excited and thankful I
> don't have to write one myself!
>
> I had planned to review this patch, but I notice there are several
> TODOs. So instead, I will ask: what is the status of this patch? Is
> it in a state where it is ready for review, or is there more work to be
> done first? If it is the latter, what (if anything) can I do to help
> out?
>
> Thanks,
> Juli
>
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v7] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (5 preceding siblings ...)
2024-08-23 14:15 ` Juliana Sims via Guix-patches via
@ 2024-08-29 4:06 ` Andy Tai
2024-09-25 2:39 ` [bug#72027] [PATCH v8] " Andy Tai
` (3 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-08-29 4:06 UTC (permalink / raw)
To: juli, 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: If191f434a3f66b16afdc702069eaed1ca22e2427
---
gnu/packages/machine-learning.scm | 54 +++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 4c5b713cbf..bad7033894 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -28,6 +28,7 @@
;;; Copyright © 2024 Timothee Mathieu <timothee.mathieu@inria.fr>
;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com>
;;; Copyright © 2024 David Elsing <david.elsing@posteo.net>
+;;; Copyright © 2024 Andy Tai <atai@atai.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -117,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -5937,6 +5939,58 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TODO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TODO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies, with
+@itemize
+@item AVX intrinsics support for x86 architectures
+@item VSX intrinsics support for POWER architectures
+@item Mixed F16 / F32 precision
+@item 4-bit and 5-bit integer quantization support
+@item Zero memory allocations at runtime
+@item Support for CPU-only inference
+@item Efficient GPU support for NVIDIA
+@item OpenVINO Support
+@item C-style API
+@end itemize")
+ (license license:expat)))
+
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: de25a21433bf8ac213302c52789af06a37f4f972
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v6] gnu: Add whisper-cpp.
2024-08-28 2:53 ` Andy Tai
@ 2024-08-29 4:11 ` Andy Tai
0 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-08-29 4:11 UTC (permalink / raw)
To: Juliana Sims; +Cc: 72027
Juliana, I have made some minor adjustments per your review, in a new
patch. I think the patch is usable but not complete; integration
with ffmpeg is missing. So feel free to take over the patch and to
update it with anything you see missing such as information on ML
model. Generally I do not package ML models together with the
software as a ML model can be tricky being free or not, so I avoid
that.
>
> On Fri, Aug 23, 2024 at 7:16 AM Juliana Sims <juli@incana.org> wrote:
> >
> > Hi Andy,
> >
> > Thanks for submitting this patch! I'm suffering from RSI pain at the
> > moment and was tasked, as I ease back into working, with packaging this
> > and the associated Emacs mode to help avoid RSI issues in the future.
> > Seeing there is already a patch up, I am quite excited and thankful I
> > don't have to write one myself!
> >
> > I had planned to review this patch, but I notice there are several
> > TODOs. So instead, I will ask: what is the status of this patch? Is
> > it in a state where it is ready for review, or is there more work to be
> > done first? If it is the latter, what (if anything) can I do to help
> > out?
> >
> > Thanks,
> > Juli
> >
> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v8] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (6 preceding siblings ...)
2024-08-29 4:06 ` [bug#72027] [PATCH v7] " Andy Tai
@ 2024-09-25 2:39 ` Andy Tai
2024-10-20 22:29 ` [bug#72027] [PATCH v9] " Andy Tai
` (2 subsequent siblings)
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-09-25 2:39 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: I8db67dc543c0a1280e2cc5e8c03945b9ccdb9975
---
gnu/packages/machine-learning.scm | 52 +++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 5d34283947..013d740673 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -118,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -6067,6 +6068,57 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TODO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TODO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies, with
+@itemize
+@item AVX intrinsics support for x86 architectures
+@item VSX intrinsics support for POWER architectures
+@item Mixed F16 / F32 precision
+@item 4-bit and 5-bit integer quantization support
+@item Zero memory allocations at runtime
+@item Support for CPU-only inference
+@item Efficient GPU support for NVIDIA
+@item OpenVINO Support
+@item C-style API
+@end itemize")
+ (license license:expat)))
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 3ac69c1a757430d6dfdd37eb948ba1d6967967cc
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v9] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (7 preceding siblings ...)
2024-09-25 2:39 ` [bug#72027] [PATCH v8] " Andy Tai
@ 2024-10-20 22:29 ` Andy Tai
2024-11-28 20:21 ` [bug#72027] [PATCH v10] " Andy Tai
2024-11-28 20:42 ` [bug#72027] [PATCH v11] " Andy Tai
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-10-20 22:29 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
Change-Id: I8db67dc543c0a1280e2cc5e8c03945b9ccdb9975
---
gnu/packages/machine-learning.scm | 52 +++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 988fac3b63..7e2b9b1b55 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -118,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -6067,6 +6068,57 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.6.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01q4j602wkvsf9vw0nsazzgvjppf4fhpy90vqnm9affynyxhi0c4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE")
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TODO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TODO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies, with
+@itemize
+@item AVX intrinsics support for x86 architectures
+@item VSX intrinsics support for POWER architectures
+@item Mixed F16 / F32 precision
+@item 4-bit and 5-bit integer quantization support
+@item Zero memory allocations at runtime
+@item Support for CPU-only inference
+@item Efficient GPU support for NVIDIA
+@item OpenVINO Support
+@item C-style API
+@end itemize")
+ (license license:expat)))
+
(define-public python-gguf
(package
(name "python-gguf")
base-commit: 92910f5413fd9112c0502138eed5fff758c5de65
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v10] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (8 preceding siblings ...)
2024-10-20 22:29 ` [bug#72027] [PATCH v9] " Andy Tai
@ 2024-11-28 20:21 ` Andy Tai
2024-11-28 20:42 ` [bug#72027] [PATCH v11] " Andy Tai
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-11-28 20:21 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
* gnu/packages/patches/whisper-cpp-enable-tests.patch: New file.
Change-Id: I8db67dc543c0a1280e2cc5e8c03945b9ccdb9975
---
gnu/packages/machine-learning.scm | 54 +++++++++++++++++++
.../patches/whisper-cpp-enable-tests.patch | 19 +++++++
2 files changed, 73 insertions(+)
create mode 100644 gnu/packages/patches/whisper-cpp-enable-tests.patch
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 3696a81ea6..69b3ac48fb 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -118,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -6067,6 +6068,59 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.7.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0fbxf43dfz0wgc2qx57gm7a56nqpbmvkzgk68jfj1pa5r9qijzfb"))
+ (patches (search-patches "whisper-cpp-enable-tests.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE"
+ "-DWHISPER_BUILD_TESTS=TRUE" )
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TODO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TODO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies, with
+@itemize
+@item AVX intrinsics support for x86 architectures
+@item VSX intrinsics support for POWER architectures
+@item Mixed F16 / F32 precision
+@item 4-bit and 5-bit integer quantization support
+@item Zero memory allocations at runtime
+@item Support for CPU-only inference
+@item Efficient GPU support for NVIDIA
+@item OpenVINO Support
+@item C-style API
+@end itemize")
+ (license license:expat)))
+
(define-public python-gguf
(package
(name "python-gguf")
diff --git a/gnu/packages/patches/whisper-cpp-enable-tests.patch b/gnu/packages/patches/whisper-cpp-enable-tests.patch
new file mode 100644
index 0000000000..c4340d4879
--- /dev/null
+++ b/gnu/packages/patches/whisper-cpp-enable-tests.patch
@@ -0,0 +1,19 @@
+Distribution specific patch
+
+restored tests commented out in CMakeLists.txt upstream
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c53252b..ee06015 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,8 +176,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/whisper.pc"
+ #
+
+ if (WHISPER_BUILD_TESTS AND NOT CMAKE_JS_VERSION)
+- #include(CTest)
+- #add_subdirectory(tests)
++ include(CTest)
++ add_subdirectory(tests)
+ endif ()
+
+ if (WHISPER_BUILD_EXAMPLES)
base-commit: ce877a777e6ec089dc347e9883387d3080b471cf
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [bug#72027] [PATCH v11] gnu: Add whisper-cpp.
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
` (9 preceding siblings ...)
2024-11-28 20:21 ` [bug#72027] [PATCH v10] " Andy Tai
@ 2024-11-28 20:42 ` Andy Tai
10 siblings, 0 replies; 15+ messages in thread
From: Andy Tai @ 2024-11-28 20:42 UTC (permalink / raw)
To: 72027; +Cc: Andy Tai
* gnu/packages/machine-learning.scm (whisper-cpp): New variable.
* gnu/packages/patches/whisper-cpp-enable-tests.patch: New file.
* gnu/local.mk: Register new file.
Change-Id: I8db67dc543c0a1280e2cc5e8c03945b9ccdb9975
---
gnu/local.mk | 1 +
gnu/packages/machine-learning.scm | 54 +++++++++++++++++++
.../patches/whisper-cpp-enable-tests.patch | 19 +++++++
3 files changed, 74 insertions(+)
create mode 100644 gnu/packages/patches/whisper-cpp-enable-tests.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index c89fd88282..346ef2e0fb 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2327,6 +2327,7 @@ dist_patch_DATA = \
%D%/packages/patches/webrtc-audio-processing-x86-no-sse.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-unbundle-libsrtp.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
+ %D%/packages/patches/whisper-cpp-enable-tests.patch \
%D%/packages/patches/wmctrl-64-fix.patch \
%D%/packages/patches/wmfire-dont-inline-draw-fire.patch \
%D%/packages/patches/wmfire-update-for-new-gdk-versions.patch \
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 3696a81ea6..69b3ac48fb 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -118,6 +118,7 @@ (define-module (gnu packages machine-learning)
#:use-module (gnu packages rdf)
#:use-module (gnu packages regex)
#:use-module (gnu packages rpc)
+ #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages statistics)
@@ -6067,6 +6068,59 @@ (define-public oneapi-dnnl-for-r-torch
(sha256
(base32 "1zyw5rd8x346bb7gac9a7x3saviw3zvp6aqz2z1l9sv163vmjfz6"))))))
+(define-public whisper-cpp
+ (package
+ (name "whisper-cpp")
+ (version "1.7.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ggerganov/whisper.cpp")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0fbxf43dfz0wgc2qx57gm7a56nqpbmvkzgk68jfj1pa5r9qijzfb"))
+ (patches (search-patches "whisper-cpp-enable-tests.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags #~'("-DWHISPER_STANDALONE=TRUE" "-DWHISPER_SDL2=TRUE"
+ "-DWHISPER_BUILD_TESTS=TRUE" )
+ ;; "-DWHISPER_FFMPEG=TRUE" ; TODO
+ #:phases #~(modify-phases %standard-phases
+ #$@(if (not (target-64bit?))
+ '((add-after 'unpack 'skip-failing-tests
+ (lambda _
+ ;; 32-bit system
+ ;; large model does not fit in RAM in 32-bit system,
+ ;; disable large model test
+ (substitute* "tests/CMakeLists.txt"
+ (("LABELS \"large\"")
+ "DISABLED true")))))
+ '()))))
+ (inputs (list sdl2)) ;ffmpeg openblas ;TODO:
+ (native-inputs (list pkg-config))
+ (properties '((tunable? . #t))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/ggerganov/whisper.cpp")
+ (synopsis "OpenAI's Whisper model in C/C++")
+ (description
+ "This package is a high-performance inference of OpenAI's
+Whisper automatic speech recognition (ASR) model, implemented in plain C/C++
+without dependencies, with
+@itemize
+@item AVX intrinsics support for x86 architectures
+@item VSX intrinsics support for POWER architectures
+@item Mixed F16 / F32 precision
+@item 4-bit and 5-bit integer quantization support
+@item Zero memory allocations at runtime
+@item Support for CPU-only inference
+@item Efficient GPU support for NVIDIA
+@item OpenVINO Support
+@item C-style API
+@end itemize")
+ (license license:expat)))
+
(define-public python-gguf
(package
(name "python-gguf")
diff --git a/gnu/packages/patches/whisper-cpp-enable-tests.patch b/gnu/packages/patches/whisper-cpp-enable-tests.patch
new file mode 100644
index 0000000000..c4340d4879
--- /dev/null
+++ b/gnu/packages/patches/whisper-cpp-enable-tests.patch
@@ -0,0 +1,19 @@
+Distribution specific patch
+
+restored tests commented out in CMakeLists.txt upstream
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c53252b..ee06015 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,8 +176,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/whisper.pc"
+ #
+
+ if (WHISPER_BUILD_TESTS AND NOT CMAKE_JS_VERSION)
+- #include(CTest)
+- #add_subdirectory(tests)
++ include(CTest)
++ add_subdirectory(tests)
+ endif ()
+
+ if (WHISPER_BUILD_EXAMPLES)
base-commit: ce877a777e6ec089dc347e9883387d3080b471cf
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-11-28 20:44 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-10 4:53 [bug#72027] [PATCH] gnu: Add whisper-cpp Andy Tai
2024-07-10 5:55 ` [bug#72027] [PATCH v2] " Andy Tai
2024-07-10 6:16 ` [bug#72027] [PATCH v3] " Andy Tai
2024-07-11 6:46 ` [bug#72027] [PATCH v4] " Andy Tai
2024-07-12 5:44 ` [bug#72027] [PATCH v5] " Andy Tai
2024-08-19 5:01 ` [bug#72027] [PATCH v6] " Andy Tai
2024-08-23 14:15 ` Juliana Sims via Guix-patches via
2024-08-23 16:05 ` Juliana Sims via Guix-patches via
2024-08-28 2:53 ` Andy Tai
2024-08-29 4:11 ` Andy Tai
2024-08-29 4:06 ` [bug#72027] [PATCH v7] " Andy Tai
2024-09-25 2:39 ` [bug#72027] [PATCH v8] " Andy Tai
2024-10-20 22:29 ` [bug#72027] [PATCH v9] " Andy Tai
2024-11-28 20:21 ` [bug#72027] [PATCH v10] " Andy Tai
2024-11-28 20:42 ` [bug#72027] [PATCH v11] " Andy Tai
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).