about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorDavid Knaack <davidkna@users.noreply.github.com>2024-06-23 12:35:52 +0200
committerDavid Knaack <davidkna@users.noreply.github.com>2024-06-23 12:35:52 +0200
commitb12809df40c7bbb464a7bc0f61379ae8609f4e92 (patch)
treef5c8bf5ad5961a6778fc7a25e2444d526a790a15 /pkgs/tools
parent420c9a60c0a3e672dc3776916ab4b1892a066feb (diff)
openai-whisper-cpp: 1.5.4 -> 1.6.2
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/audio/openai-whisper-cpp/default.nix14
-rw-r--r--pkgs/tools/audio/openai-whisper-cpp/download-models.patch48
2 files changed, 28 insertions, 34 deletions
diff --git a/pkgs/tools/audio/openai-whisper-cpp/default.nix b/pkgs/tools/audio/openai-whisper-cpp/default.nix
index ab1cbb77e97bb..218872ed1e313 100644
--- a/pkgs/tools/audio/openai-whisper-cpp/default.nix
+++ b/pkgs/tools/audio/openai-whisper-cpp/default.nix
@@ -25,13 +25,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "whisper-cpp";
-  version = "1.5.4";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "ggerganov";
     repo = "whisper.cpp";
     rev = "refs/tags/v${finalAttrs.version}" ;
-    hash = "sha256-9H2Mlua5zx2WNXbz2C5foxIteuBgeCNALdq5bWyhQCk=";
+    hash = "sha256-hIEIu7feOZWqxRskf6Ej7l653/9KW8B3cnpPLoCRBAc=";
   };
 
   # The upstream download script tries to download the models to the
@@ -80,6 +80,7 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   env = lib.optionalAttrs stdenv.isDarwin {
     WHISPER_COREML = "1";
     WHISPER_COREML_ALLOW_FALLBACK = "1";
+    WHISPER_METAL_EMBED_LIBRARY = "1";
   } // lib.optionalAttrs cudaSupport {
     WHISPER_CUBLAS = "1";
   };
@@ -99,15 +100,6 @@ effectiveStdenv.mkDerivation (finalAttrs: {
     wrapProgram $out/bin/whisper-cpp-download-ggml-model \
       --prefix PATH : ${lib.makeBinPath [wget]}
 
-    ${lib.optionalString stdenv.isDarwin ''
-      install -Dt $out/share/whisper-cpp ggml-metal.metal
-
-      for bin in whisper-cpp whisper-cpp-stream whisper-cpp-command; do
-        wrapProgram $out/bin/$bin \
-          --set-default GGML_METAL_PATH_RESOURCES $out/share/whisper-cpp
-      done
-    ''}
-
     runHook postInstall
   '';
 
diff --git a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
index 7183c38b51669..7589c2ef36f83 100644
--- a/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
+++ b/pkgs/tools/audio/openai-whisper-cpp/download-models.patch
@@ -1,51 +1,53 @@
+diff --git a/models/download-ggml-model.sh b/models/download-ggml-model.sh
+index 1f1075b..7476c8e 100755
 --- a/models/download-ggml-model.sh
 +++ b/models/download-ggml-model.sh
-@@ -9,18 +9,6 @@
- src="https://huggingface.co/ggerganov/whisper.cpp"
- pfx="resolve/main/ggml"
+@@ -12,18 +12,6 @@ pfx="resolve/main/ggml"
+ BOLD="\033[1m"
+ RESET='\033[0m'
  
 -# get the path of this script
--function get_script_path() {
+-get_script_path() {
 -    if [ -x "$(command -v realpath)" ]; then
--        echo "$(dirname "$(realpath "$0")")"
+-        dirname "$(realpath "$0")"
 -    else
--        local ret="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
--        echo "$ret"
+-        _ret="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 || exit ; pwd -P)"
+-        echo "$_ret"
 -    fi
 -}
 -
 -models_path="${2:-$(get_script_path)}"
 -
  # Whisper models
- models=(
-     "tiny.en"
-@@ -56,8 +44,8 @@ function list_models {
+ models="tiny
+ tiny.en
+@@ -64,8 +52,8 @@ list_models() {
      printf "\n\n"
  }
  
 -if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
--    printf "Usage: $0 <model> [models_path]\n"
+-    printf "Usage: %s <model> [models_path]\n" "$0"
 +if [ "$#" -ne 1 ]; then
-+    printf "Usage: $0 <model>\n"
++    printf "Usage: %s <model>\n" "$0"
      list_models
+     printf "___________________________________________________________\n"
+     printf "${BOLD}.en${RESET} = english-only ${BOLD}-q5_[01]${RESET} = quantized ${BOLD}-tdrz${RESET} = tinydiarize\n"
+@@ -94,8 +82,6 @@ echo "$model" | grep -q '^"tdrz"*$'
  
-     exit 1
-@@ -82,8 +70,6 @@ fi
- 
- printf "Downloading ggml model $model from '$src' ...\n"
+ printf "Downloading ggml model %s from '%s' ...\n" "$model" "$src"
  
--cd "$models_path"
+-cd "$models_path" || exit
 -
  if [ -f "ggml-$model.bin" ]; then
-     printf "Model $model already exists. Skipping download.\n"
+     printf "Model %s already exists. Skipping download.\n" "$model"
      exit 0
-@@ -105,7 +91,7 @@ if [ $? -ne 0 ]; then
+@@ -116,7 +102,7 @@ if [ $? -ne 0 ]; then
      exit 1
  fi
  
--printf "Done! Model '$model' saved in '$models_path/ggml-$model.bin'\n"
-+printf "Done! Model '$model' saved in 'ggml-$model.bin'\n"
+-printf "Done! Model '%s' saved in '%s/ggml-%s.bin'\n" "$model" "$models_path" "$model"
++printf "Done! Model '%s' saved in 'ggml-%s.bin'\n" "$model" "$model"
  printf "You can now use it like this:\n\n"
--printf "  $ ./main -m $models_path/ggml-$model.bin -f samples/jfk.wav\n"
-+printf "  $ whisper-cpp -m ggml-$model.bin -f samples/jfk.wav\n"
+-printf "  $ ./main -m %s/ggml-%s.bin -f samples/jfk.wav\n" "$models_path" "$model"
++printf "  $ whisper-cpp -m ggml-%s.bin -f samples/jfk.wav\n" "$model"
  printf "\n"