mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2024-12-19 12:47:52 +00:00
18e6fb0287
This commit modifies the `get_script_path` function to correctly handle spaces and special characters in directory paths. The fix involves adding double quotes around variables and commands where needed to ensure proper parsing of paths with spaces and special characters.
84 lines
2.0 KiB
Bash
Executable File
84 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script downloads Whisper model files that have already been converted to ggml format.
|
|
# This way you don't have to convert them yourself.
|
|
|
|
#src="https://ggml.ggerganov.com"
|
|
#pfx="ggml-model-whisper"
|
|
|
|
src="https://huggingface.co/ggerganov/whisper.cpp"
|
|
pfx="resolve/main/ggml"
|
|
|
|
# get the path of this script
|
|
function get_script_path() {
|
|
if [ -x "$(command -v realpath)" ]; then
|
|
echo "$(dirname "$(realpath "$0")")"
|
|
else
|
|
local ret="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)"
|
|
echo "$ret"
|
|
fi
|
|
}
|
|
|
|
models_path="$(get_script_path)"
|
|
|
|
# Whisper models
|
|
models=( "tiny.en" "tiny" "base.en" "base" "small.en" "small" "medium.en" "medium" "large-v1" "large" )
|
|
|
|
# list available models
|
|
function list_models {
|
|
printf "\n"
|
|
printf " Available models:"
|
|
for model in "${models[@]}"; do
|
|
printf " $model"
|
|
done
|
|
printf "\n\n"
|
|
}
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
printf "Usage: $0 <model>\n"
|
|
list_models
|
|
|
|
exit 1
|
|
fi
|
|
|
|
model=$1
|
|
|
|
if [[ ! " ${models[@]} " =~ " ${model} " ]]; then
|
|
printf "Invalid model: $model\n"
|
|
list_models
|
|
|
|
exit 1
|
|
fi
|
|
|
|
# download ggml model
|
|
|
|
printf "Downloading ggml model $model from '$src' ...\n"
|
|
|
|
cd $models_path
|
|
|
|
if [ -f "ggml-$model.bin" ]; then
|
|
printf "Model $model already exists. Skipping download.\n"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -x "$(command -v wget)" ]; then
|
|
wget --quiet --show-progress -O ggml-$model.bin $src/$pfx-$model.bin
|
|
elif [ -x "$(command -v curl)" ]; then
|
|
curl -L --output ggml-$model.bin $src/$pfx-$model.bin
|
|
else
|
|
printf "Either wget or curl is required to download models.\n"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
printf "Failed to download ggml model $model \n"
|
|
printf "Please try again later or download the original Whisper model files and convert them yourself.\n"
|
|
exit 1
|
|
fi
|
|
|
|
printf "Done! Model '$model' saved in 'models/ggml-$model.bin'\n"
|
|
printf "You can now use it like this:\n\n"
|
|
printf " $ ./main -m models/ggml-$model.bin -f samples/jfk.wav\n"
|
|
printf "\n"
|