69 lines
2.7 KiB
Bash
Executable file
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"
|