Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

openai-whisper-cpp: 1.5.4 -> 1.6.2 #321941

Merged
merged 1 commit into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 3 additions & 11 deletions pkgs/tools/audio/openai-whisper-cpp/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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";
};
Expand All @@ -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
'';

Expand Down
48 changes: 25 additions & 23 deletions pkgs/tools/audio/openai-whisper-cpp/download-models.patch
Original file line number Diff line number Diff line change
@@ -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"