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:
2026-04-01 15:52:27 -05:00
commit cc353e37ae
62 changed files with 6968 additions and 0 deletions

View 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 "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"