Initial commit
Whisper model weights excluded from git — auto-downloaded at first Xcode build via Scripts/download_whisper_model.sh (~600 MB, one-time).
This commit is contained in:
61
Scripts/download_whisper_model.sh
Executable file
61
Scripts/download_whisper_model.sh
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
# download_whisper_model.sh
|
||||
# Xcode pre-build script: downloads distil-whisper CoreML model if not present.
|
||||
# Only runs once — subsequent builds skip it if the weight files already exist.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
MODEL_NAME="distil-whisper_distil-large-v3_594MB"
|
||||
MODEL_DIR="${SRCROOT}/LockInBroMobile/${MODEL_NAME}"
|
||||
HF_BASE="https://huggingface.co/argmaxinc/whisperkit-coreml/resolve/main/${MODEL_NAME}"
|
||||
|
||||
# Xcode checks outputPaths before running this script, but double-check here too.
|
||||
if [ -f "${MODEL_DIR}/AudioEncoder.mlmodelc/weights/weight.bin" ] && \
|
||||
[ -f "${MODEL_DIR}/TextDecoder.mlmodelc/weights/weight.bin" ]; then
|
||||
echo "Whisper model already present — skipping download."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo " Downloading distil-whisper model (~600 MB, one-time)"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
|
||||
FILES=(
|
||||
"config.json"
|
||||
"generation_config.json"
|
||||
"AudioEncoder.mlmodelc/metadata.json"
|
||||
"AudioEncoder.mlmodelc/model.mil"
|
||||
"AudioEncoder.mlmodelc/coremldata.bin"
|
||||
"AudioEncoder.mlmodelc/analytics/coremldata.bin"
|
||||
"AudioEncoder.mlmodelc/weights/weight.bin"
|
||||
"MelSpectrogram.mlmodelc/metadata.json"
|
||||
"MelSpectrogram.mlmodelc/model.mil"
|
||||
"MelSpectrogram.mlmodelc/coremldata.bin"
|
||||
"MelSpectrogram.mlmodelc/analytics/coremldata.bin"
|
||||
"MelSpectrogram.mlmodelc/weights/weight.bin"
|
||||
"TextDecoder.mlmodelc/metadata.json"
|
||||
"TextDecoder.mlmodelc/model.mil"
|
||||
"TextDecoder.mlmodelc/coremldata.bin"
|
||||
"TextDecoder.mlmodelc/analytics/coremldata.bin"
|
||||
"TextDecoder.mlmodelc/weights/weight.bin"
|
||||
)
|
||||
|
||||
TOTAL=${#FILES[@]}
|
||||
INDEX=0
|
||||
|
||||
for file in "${FILES[@]}"; do
|
||||
INDEX=$((INDEX + 1))
|
||||
dest="${MODEL_DIR}/${file}"
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
if [ ! -f "$dest" ]; then
|
||||
echo "[${INDEX}/${TOTAL}] Downloading ${file}..."
|
||||
curl -L --retry 3 --retry-delay 2 --progress-bar \
|
||||
-o "$dest" "${HF_BASE}/${file}"
|
||||
else
|
||||
echo "[${INDEX}/${TOTAL}] Already exists: ${file}"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo " Model download complete. Build continuing..."
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
Reference in New Issue
Block a user