#!/usr/bin/env bash # # Descarga el modelo YAMNet en ONNX que necesita la detección de ladridos. # # El binario (16 MB) no se versiona en git: se descarga aquí y se verifica su # SHA-256. YAMNet es Apache-2.0 (TF Hub de Google); esta es una conversión a # ONNX ya validada con audio real: # - entrada `waveform` de rango 1, (15600,) float32 -> 0.975 s a 16 kHz # - salidas: 521 clases de AudioSet + 1024 embeddings + 64 espectrograma # - los índices cuadran con models/yamnet_classes.csv (Bark = 70) # # Uso: bash scripts/fetch_models.sh set -euo pipefail URL="https://huggingface.co/zeropointnine/yamnet-onnx/resolve/main/yamnet.onnx" SHA256="1510041dce24a2e9e84ec546807ac408ae496da6d1ed41bc3ccba649623f8e19" RAIZ="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" DESTINO="$RAIZ/models/yamnet.onnx" if [[ -f "$DESTINO" ]] && echo "$SHA256 $DESTINO" | sha256sum -c --status 2>/dev/null; then echo "Ya está descargado y verificado: $DESTINO" exit 0 fi echo "Descargando YAMNet ONNX (16 MB)..." curl -fL --progress-bar -o "$DESTINO.tmp" "$URL" echo "Verificando SHA-256..." if ! echo "$SHA256 $DESTINO.tmp" | sha256sum -c --status; then rm -f "$DESTINO.tmp" echo "ERROR: el fichero descargado no coincide con el SHA-256 esperado." >&2 echo "Puede ser un fallo de red o que el fichero remoto haya cambiado." >&2 exit 1 fi mv "$DESTINO.tmp" "$DESTINO" echo "Listo: $DESTINO ($(du -h "$DESTINO" | cut -f1))"