pediatric-ai-scribe-v3/scripts/download-whisper-models.sh
ifedan-ed 73db47ab18
Some checks failed
Build TWA APK / build-apk (push) Failing after 2s
Build & Push Docker Image / build (push) Failing after 8s
v6: Use transformers.js v2.0.0 (proven worker compatibility)
2026-04-01 00:32:23 +00:00

69 lines
2.7 KiB
Bash
Executable file

#!/bin/bash
# Download Browser Whisper models for local development
# These are bundled during Docker build, but need manual download for dev
set -e
cd "$(dirname "$0")/.."
MODELS_DIR="public/models"
echo "🎙️ Downloading Browser Whisper models..."
echo ""
# Create directories
mkdir -p "$MODELS_DIR/Xenova/whisper-tiny.en/onnx"
# Download transformers.js (worker-compatible build)
echo "📦 Downloading transformers.js..."
curl -L --progress-bar -o "$MODELS_DIR/transformers.min.js" \
"https://cdn.jsdelivr.net/npm/@xenova/transformers@2.0.0/dist/transformers.min.js"
echo "✅ transformers.min.js ($(du -h $MODELS_DIR/transformers.min.js | cut -f1))"
echo ""
# Download model config files
echo "📝 Downloading model configs..."
cd "$MODELS_DIR/Xenova/whisper-tiny.en"
curl -sL -o config.json \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/config.json"
echo "✅ config.json ($(du -h config.json | cut -f1))"
curl -sL -o tokenizer.json \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/tokenizer.json"
echo "✅ tokenizer.json ($(du -h tokenizer.json | cut -f1))"
curl -sL -o preprocessor_config.json \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/preprocessor_config.json"
echo "✅ preprocessor_config.json ($(du -h preprocessor_config.json | cut -f1))"
curl -sL -o generation_config.json \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/generation_config.json"
echo "✅ generation_config.json ($(du -h generation_config.json | cut -f1))"
echo ""
# Download ONNX models (large files)
echo "🧠 Downloading encoder model..."
curl -L --progress-bar -o onnx/encoder_model_quantized.onnx \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/onnx/encoder_model_quantized.onnx"
echo "✅ encoder_model_quantized.onnx ($(du -h onnx/encoder_model_quantized.onnx | cut -f1))"
echo ""
echo "🧠 Downloading decoder model..."
curl -L --progress-bar -o onnx/decoder_model_merged_quantized.onnx \
"https://huggingface.co/Xenova/whisper-tiny.en/resolve/main/onnx/decoder_model_merged_quantized.onnx"
echo "✅ decoder_model_merged_quantized.onnx ($(du -h onnx/decoder_model_merged_quantized.onnx | cut -f1))"
echo ""
# Show summary
cd - > /dev/null
echo "════════════════════════════════════════"
echo "✅ Browser Whisper models downloaded!"
echo "════════════════════════════════════════"
echo "Total size: $(du -sh $MODELS_DIR | cut -f1)"
echo ""
echo "Files:"
ls -lh "$MODELS_DIR/Xenova/whisper-tiny.en/" | tail -n +2
echo ""
ls -lh "$MODELS_DIR/Xenova/whisper-tiny.en/onnx/" | tail -n +2
echo ""
echo "Models are ready for use. Start server with: npm start"