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

30 lines
1.2 KiB
Markdown

# 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.