JARVIS/config/README_whisper_gpu.md
sito 8e4bc8ad94 JARVIS: asistente de voz local para Linux
Nucleo propio: oye con whisper.cpp, piensa con un modelo de Ollama, habla
con Piper, y hace RAG sobre los apuntes del usuario. 100% local, sin
cuentas ni claves.

Escrito bajo una restriccion dura, 4 GB de VRAM: el cerebro y whisper
comparten tarjeta y solo caben porque estan dimensionados para ello. El
RAG usa embeddings estaticos con busqueda hibrida; la voz clonada se sirve
de una cache de frases.

Incluye instalador (install.sh), requisitos, y documentacion del stack,
del manejo de root y de las acciones. Los apuntes indexados y el diario NO
se incluyen: son privados y el .gitignore los bloquea.
2026-08-16 15:34:37 +02:00

1.2 KiB

Whisper small en GPU

El reconocimiento pasa del modelo base en CPU al small en GPU. Medido:

acierto latencia (régimen)
base · CPU 80 % 928 ms
small · GPU 93 % ~930 ms

Misma velocidad, +13 puntos de acierto. small ocupa 757 MiB en la T1200 y coexiste con el modelo grande de Ollama (2901/3717 MiB con los dos cargados).

Cómo está montado

  • whisper.cpp compilado con CUDA (sm_75) en voz/whisper-cuda/ (no versionado; se reconstruye con cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=75).
  • Envoltorio ~/.local/bin/whisper-server (copia de referencia en config/whisper-server-cuda.sh): fija LD_LIBRARY_PATH a las libs de CUDA y llama al binario. Está en el PATH del host, que es donde Newelle lo busca.
  • Ajustes de Newelle: stt-settings.whispercpp = {model: small, use_system_server: true}. El handler arranca el servidor por flatpak-spawn --host whisper-server y le pega las peticiones.

Lo único a saber

La PRIMERA transcripción de cada sesión tarda ~4 s: es el arranque del servidor (cargar el modelo a la GPU). A partir de ahí, ~930 ms. El servidor se queda vivo mientras la app corre.

Para volver a CPU: use_system_server: false y model: base en los ajustes.