51 lines
1.9 KiB
Bash
Executable File
51 lines
1.9 KiB
Bash
Executable File
#!/bin/zsh
|
|
set -euo pipefail
|
|
|
|
SUPPORT_DIR="$HOME/Library/Application Support/WhisperKey"
|
|
TEMP_DIR=$(mktemp -d)
|
|
trap 'rm -rf "$TEMP_DIR"' EXIT
|
|
|
|
mkdir -p "$SUPPORT_DIR"
|
|
git clone --depth 1 https://github.com/ggml-org/whisper.cpp.git "$TEMP_DIR/whisper.cpp"
|
|
cmake -S "$TEMP_DIR/whisper.cpp" -B "$TEMP_DIR/whisper.cpp/build" \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DWHISPER_METAL=ON \
|
|
-DWHISPER_COREML=OFF \
|
|
-DWHISPER_BUILD_SERVER=ON
|
|
cmake --build "$TEMP_DIR/whisper.cpp/build" --config Release --target whisper-cli whisper-server -j 8
|
|
cp "$TEMP_DIR/whisper.cpp/build/bin/whisper-cli" "$SUPPORT_DIR/whisper-cli"
|
|
cp "$TEMP_DIR/whisper.cpp/build/bin/whisper-server" "$SUPPORT_DIR/whisper-server"
|
|
chmod 755 "$SUPPORT_DIR/whisper-cli" "$SUPPORT_DIR/whisper-server"
|
|
|
|
MODEL_FILE="ggml-large-v3-turbo.bin"
|
|
MODEL_URL="https://huggingface.co/ggerganov/whisper.cpp/resolve/main/$MODEL_FILE"
|
|
MODEL_SHA256="1fc70f774d38eb169993ac391eea357ef47c88757ef72ee5943879b7e8e2bc69"
|
|
if [[ ! -s "$SUPPORT_DIR/$MODEL_FILE" ]]; then
|
|
curl --fail --location --progress-bar "$MODEL_URL" --output "$SUPPORT_DIR/$MODEL_FILE"
|
|
fi
|
|
|
|
ACTUAL_SHA256=$(shasum -a 256 "$SUPPORT_DIR/$MODEL_FILE" | awk '{print $1}')
|
|
if [[ "$ACTUAL_SHA256" != "$MODEL_SHA256" ]]; then
|
|
echo "Model checksum mismatch: $ACTUAL_SHA256" >&2
|
|
exit 1
|
|
fi
|
|
|
|
VAD_FILE="ggml-silero-v6.2.0.bin"
|
|
VAD_URL="https://huggingface.co/ggml-org/whisper-vad/resolve/main/$VAD_FILE"
|
|
VAD_SHA256="2aa269b785eeb53a82983a20501ddf7c1d9c48e33ab63a41391ac6c9f7fb6987"
|
|
if [[ ! -s "$SUPPORT_DIR/$VAD_FILE" ]]; then
|
|
curl --fail --location --progress-bar "$VAD_URL" --output "$SUPPORT_DIR/$VAD_FILE"
|
|
fi
|
|
|
|
ACTUAL_VAD_SHA256=$(shasum -a 256 "$SUPPORT_DIR/$VAD_FILE" | awk '{print $1}')
|
|
if [[ "$ACTUAL_VAD_SHA256" != "$VAD_SHA256" ]]; then
|
|
echo "VAD checksum mismatch: $ACTUAL_VAD_SHA256" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Local Whisper installed:"
|
|
echo " $SUPPORT_DIR/whisper-cli"
|
|
echo " $SUPPORT_DIR/whisper-server"
|
|
echo " $SUPPORT_DIR/$MODEL_FILE"
|