#!/usr/bin/env bash # Download ONNX models for the voice experiment. # # Usage: # bash download-models.sh # default: whisper base.en # WHISPER_MODEL=large-v3-turbo bash download-models.sh # # After downloading, run: node demo.mjs set -euo pipefail WHISPER_MODEL="${WHISPER_MODEL:-base.en}" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" MODELS_DIR="${SCRIPT_DIR}/models" mkdir -p "${MODELS_DIR}" cd "${MODELS_DIR}" echo "==> models dir: ${MODELS_DIR}" # --- Silero VAD (~2 MB) --- if [ ! -f silero_vad.onnx ]; then echo "==> downloading silero_vad.onnx" curl -L --progress-bar -o silero_vad.onnx \ 'https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/silero_vad.onnx' else echo "==> silero_vad.onnx already present" fi # --- Whisper STT --- WHISPER_DIR="sherpa-onnx-whisper-${WHISPER_MODEL}" if [ ! -d "${WHISPER_DIR}" ]; then echo "==> downloading whisper-${WHISPER_MODEL}" curl -L --progress-bar -o "${WHISPER_DIR}.tar.bz2" \ "https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-whisper-${WHISPER_MODEL}.tar.bz2" echo "==> extracting..." tar xf "${WHISPER_DIR}.tar.bz2" else echo "==> whisper-${WHISPER_MODEL} already present" fi # --- Kokoro TTS (~310 MB) --- if [ ! -d kokoro-en-v0_19 ]; then echo "==> downloading kokoro-en-v0_19 (English TTS)" curl -L --progress-bar -o kokoro-en-v0_19.tar.bz2 \ 'https://github.com/k2-fsa/sherpa-onnx/releases/download/tts-models/kokoro-en-v0_19.tar.bz2' echo "==> extracting..." tar xf kokoro-en-v0_19.tar.bz2 else echo "==> kokoro-en-v0_19 already present" fi echo "" echo "==> all models ready" echo "" echo "Next steps:" echo " cd ${SCRIPT_DIR}" echo " npm install" echo " node demo.mjs" echo "" echo "To use a better STT model:" echo " WHISPER_MODEL=large-v3-turbo bash download-models.sh" echo " WHISPER_MODEL=large-v3-turbo node demo.mjs"