27 lines
1.4 KiB
Bash
Executable File
27 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Download pre-converted FunASR GGUF models from Hugging Face — one command, no Python ML env.
|
|
# ./download-funasr-model.sh sensevoice [outdir]
|
|
# ./download-funasr-model.sh paraformer | nano | fsmn-vad
|
|
# ASR models also pull fsmn-vad.gguf (needed for built-in --vad long-audio segmentation).
|
|
set -euo pipefail
|
|
usage(){ echo "usage: $0 {sensevoice|paraformer|nano|fsmn-vad} [outdir]"; exit 1; }
|
|
[ $# -ge 1 ] || usage
|
|
MODEL="$1"; OUT="${2:-funasr-gguf}"
|
|
case "$MODEL" in
|
|
sensevoice) REPO="FunAudioLLM/SenseVoiceSmall-GGUF" ;;
|
|
paraformer) REPO="FunAudioLLM/Paraformer-GGUF" ;;
|
|
nano) REPO="FunAudioLLM/Fun-ASR-Nano-GGUF" ;;
|
|
fsmn-vad|vad) REPO="FunAudioLLM/fsmn-vad-GGUF" ;;
|
|
*) usage ;;
|
|
esac
|
|
# huggingface_hub ships `hf` (new CLI); older versions only have `huggingface-cli` (deprecated). Use whichever exists.
|
|
if command -v hf >/dev/null 2>&1; then HF=hf
|
|
elif command -v huggingface-cli >/dev/null 2>&1; then HF=huggingface-cli
|
|
else echo "need the Hugging Face CLI: pip install -U huggingface_hub"; exit 1; fi
|
|
mkdir -p "$OUT"
|
|
echo "downloading $REPO ..."; "$HF" download "$REPO" --include "*.gguf" --local-dir "$OUT"
|
|
if [ "$MODEL" != "fsmn-vad" ] && [ "$MODEL" != "vad" ]; then
|
|
echo "downloading FSMN-VAD (for --vad) ..."; "$HF" download FunAudioLLM/fsmn-vad-GGUF --include "*.gguf" --local-dir "$OUT"
|
|
fi
|
|
echo "done -> $OUT"; ls -1 "$OUT"/*.gguf
|