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.
1.2 KiB
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 concmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=75). - Envoltorio
~/.local/bin/whisper-server(copia de referencia enconfig/whisper-server-cuda.sh): fijaLD_LIBRARY_PATHa 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 porflatpak-spawn --host whisper-servery 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.