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.
This commit is contained in:
sito 2026-08-16 15:28:31 +02:00
commit 8e4bc8ad94
125 changed files with 25033 additions and 0 deletions

467
voz/qa_resultados.json Normal file
View file

@ -0,0 +1,467 @@
[
{
"palabra": "backup",
"oido": "¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal? ¿Qué tal?",
"ratio": 0.0
},
{
"palabra": "ubuntu",
"oido": "O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-",
"ratio": 0.0
},
{
"palabra": "CPU",
"oido": "es bueno, realmente, para tener una suerte, es bueno.",
"ratio": 0.08
},
{
"palabra": "CSRF",
"oido": "ser ese eficaz.",
"ratio": 0.11
},
{
"palabra": "IPCC",
"oido": "Y pese a Thé.",
"ratio": 0.12
},
{
"palabra": "GPU",
"oido": "Fearful.",
"ratio": 0.2
},
{
"palabra": "VPN",
"oido": "¡FOR B-I-N!",
"ratio": 0.2
},
{
"palabra": "UE",
"oido": "¡Hueya! ¡Hueya! ¡Chula!",
"ratio": 0.21
},
{
"palabra": "HTTPS",
"oido": "¡Vete de des!",
"ratio": 0.25
},
{
"palabra": "FTP",
"oido": "Este Pipillo.",
"ratio": 0.27
},
{
"palabra": "nmap",
"oido": "Un nap, en dos son.",
"ratio": 0.29
},
{
"palabra": "LAN",
"oido": "¡Sólo tenés!",
"ratio": 0.31
},
{
"palabra": "SQLi",
"oido": "Sé que hay ahí.",
"ratio": 0.33
},
{
"palabra": "ONU",
"oido": "¡Bono! ¡Bono!",
"ratio": 0.33
},
{
"palabra": "SSH",
"oido": "Sí, es sí.",
"ratio": 0.36
},
{
"palabra": "RSA",
"oido": "¡Pero ser!",
"ratio": 0.36
},
{
"palabra": "DDoS",
"oido": "¿Todo es tuya?",
"ratio": 0.38
},
{
"palabra": "TLS",
"oido": "Estoy el ese.",
"ratio": 0.4
},
{
"palabra": "WAN",
"oido": "WEN WEN",
"ratio": 0.4
},
{
"palabra": "XSS",
"oido": "¡Exe Ese!",
"ratio": 0.4
},
{
"palabra": "cracker",
"oido": "¡Gracias!",
"ratio": 0.43
},
{
"palabra": "bootloader",
"oido": "Good to know there.",
"ratio": 0.43
},
{
"palabra": "SSL",
"oido": "C-S-L-I-O-N",
"ratio": 0.44
},
{
"palabra": "DNS",
"oido": "Go N.S.A.",
"ratio": 0.44
},
{
"palabra": "URL",
"oido": "por el.",
"ratio": 0.44
},
{
"palabra": "SQL",
"oido": "¡Sekuel!",
"ratio": 0.44
},
{
"palabra": "malware",
"oido": "¡Malguer! ¡Malguer!",
"ratio": 0.45
},
{
"palabra": "VLAN",
"oido": "¡Blan! ¡Blan!",
"ratio": 0.46
},
{
"palabra": "kernel",
"oido": "Colonel.",
"ratio": 0.46
},
{
"palabra": "CO2",
"oido": "¡Codos!",
"ratio": 0.5
},
{
"palabra": "firewall",
"oido": "¡Fair one!",
"ratio": 0.5
},
{
"palabra": "wallet",
"oido": "¡Vale! ¡Vale!",
"ratio": 0.53
},
{
"palabra": "USB",
"oido": "U.S.A.A.",
"ratio": 0.57
},
{
"palabra": "IP",
"oido": "¡Híper!",
"ratio": 0.57
},
{
"palabra": "API",
"oido": "a ti.",
"ratio": 0.57
},
{
"palabra": "hacking",
"oido": "cutting.",
"ratio": 0.57
},
{
"palabra": "payload",
"oido": "paí lot.",
"ratio": 0.57
},
{
"palabra": "terabyte",
"oido": "Terebarit.",
"ratio": 0.59
},
{
"palabra": "ethereum",
"oido": "Es Serium.",
"ratio": 0.59
},
{
"palabra": "wireshark",
"oido": "Why is a shark?",
"ratio": 0.61
},
{
"palabra": "HTTP",
"oido": "a TTP.",
"ratio": 0.67
},
{
"palabra": "AES",
"oido": "¡Ahí es!",
"ratio": 0.67
},
{
"palabra": "NAT",
"oido": "NUT.",
"ratio": 0.67
},
{
"palabra": "OTAN",
"oido": "OTAN MUY",
"ratio": 0.67
},
{
"palabra": "proxy",
"oido": "Próximo.",
"ratio": 0.67
},
{
"palabra": "router",
"oido": "Luther.",
"ratio": 0.67
},
{
"palabra": "buffer",
"oido": "¡Fer!",
"ratio": 0.67
},
{
"palabra": "exploit",
"oido": "Explore.",
"ratio": 0.71
},
{
"palabra": "máquina",
"oido": "Machina.",
"ratio": 0.71
},
{
"palabra": "hacker",
"oido": "¡Hater!",
"ratio": 0.73
},
{
"palabra": "root",
"oido": "¡Brot!",
"ratio": 0.75
},
{
"palabra": "debian",
"oido": "De bien.",
"ratio": 0.77
},
{
"palabra": "phishing",
"oido": "Fishing.",
"ratio": 0.8
},
{
"palabra": "bytes",
"oido": "Bites.",
"ratio": 0.8
},
{
"palabra": "linux",
"oido": "Linus.",
"ratio": 0.8
},
{
"palabra": "daemon",
"oido": "Daimón.",
"ratio": 0.83
},
{
"palabra": "gigabyte",
"oido": "¡Gigabate!",
"ratio": 0.88
},
{
"palabra": "firmware",
"oido": "¡Filmware!",
"ratio": 0.88
},
{
"palabra": "RAM",
"oido": "Ram.",
"ratio": 1.0
},
{
"palabra": "SSD",
"oido": "S.S.D.",
"ratio": 1.0
},
{
"palabra": "PGP",
"oido": "pgp.",
"ratio": 1.0
},
{
"palabra": "GPG",
"oido": "¡GPG!",
"ratio": 1.0
},
{
"palabra": "ransomware",
"oido": "ransomware",
"ratio": 1.0
},
{
"palabra": "spoofing",
"oido": "Spoofing.",
"ratio": 1.0
},
{
"palabra": "software",
"oido": "software",
"ratio": 1.0
},
{
"palabra": "hardware",
"oido": "Hardware.",
"ratio": 1.0
},
{
"palabra": "shell",
"oido": "Shell.",
"ratio": 1.0
},
{
"palabra": "sudo",
"oido": "¡Sudo!",
"ratio": 1.0
},
{
"palabra": "bash",
"oido": "¡Bash!",
"ratio": 1.0
},
{
"palabra": "script",
"oido": "script.",
"ratio": 1.0
},
{
"palabra": "switch",
"oido": "Switch.",
"ratio": 1.0
},
{
"palabra": "overflow",
"oido": "Overflow.",
"ratio": 1.0
},
{
"palabra": "metasploit",
"oido": "Metasploit",
"ratio": 1.0
},
{
"palabra": "android",
"oido": "Android.",
"ratio": 1.0
},
{
"palabra": "criptografia",
"oido": "criptografia.",
"ratio": 1.0
},
{
"palabra": "cifrado",
"oido": "Cifrado.",
"ratio": 1.0
},
{
"palabra": "hash",
"oido": "¡Hash!",
"ratio": 1.0
},
{
"palabra": "blockchain",
"oido": "blockchain",
"ratio": 1.0
},
{
"palabra": "bitcoin",
"oido": "Bitcoin.",
"ratio": 1.0
},
{
"palabra": "token",
"oido": "token.",
"ratio": 1.0
},
{
"palabra": "calentamiento",
"oido": "calentamiento",
"ratio": 1.0
},
{
"palabra": "invernadero",
"oido": "Invernadero",
"ratio": 1.0
},
{
"palabra": "climatico",
"oido": "Climático.",
"ratio": 1.0
},
{
"palabra": "renovable",
"oido": "Renovable.",
"ratio": 1.0
},
{
"palabra": "emisiones",
"oido": "Emisiones.",
"ratio": 1.0
},
{
"palabra": "reconquista",
"oido": "Reconquista.",
"ratio": 1.0
},
{
"palabra": "carlista",
"oido": "Carlista.",
"ratio": 1.0
},
{
"palabra": "franquismo",
"oido": "franquismo",
"ratio": 1.0
},
{
"palabra": "transicion",
"oido": "Transición.",
"ratio": 1.0
},
{
"palabra": "señor",
"oido": "Señor.",
"ratio": 1.0
},
{
"palabra": "información",
"oido": "información.",
"ratio": 1.0
},
{
"palabra": "galería",
"oido": "Galería.",
"ratio": 1.0
},
{
"palabra": "atención",
"oido": "Atención.",
"ratio": 1.0
}
]