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.
30 lines
1.2 KiB
Markdown
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.
|