About the project
Qconta — ¿Qué conta voz?
Qconta es un asistente de contabilidad por voz 100 % local. Subes la foto de una factura, el sistema la lee con OCR y puedes preguntar en voz alta por totales, fechas, proveedores e ítems. Responde en español, inglés, portugués o francés, y nada sale de tu máquina.
Proyecto para el Aleph Hackathon Bogotá 2026, de Juan Pablo Moreno y Juan Felipe Jiménez.
El problema
Las facturas siguen llegando en papel o en escaneos desordenados. Pasarlas a una hoja de cálculo es lento, y mandar documentos financieros a una API en la nube no es opción para muchos equipos. Quisimos algo que corra en un portátil: hablarle a las facturas, sacar datos estructurados y dejar los archivos en privado.
Qué construimos
- Un hub web (Qconta) con dos módulos: asistente de voz y escáner OCR de facturas
- Voz en el dispositivo: grabas en el navegador, se transcribe, se entiende la pregunta y se responde en audio
- OCR en el dispositivo que convierte la imagen en un JSON estable (emisor, cliente, ítems, impuesto, total, pago)
- Una base local de facturas que el asistente consulta de verdad, para no inventar números
- Identidad lista para demo: paleta mint, logo, favicon y copy en español
Cómo funciona
- Arrancas el servidor local. FastAPI levanta un worker QVAC en el mismo PC y carga Whisper, un LLM pequeño (Qwen / Llama), traducción Salamandra, TTS Supertonic y OCR Latin + CRAFT.
- Subes una factura (JPG/PNG). Si la imagen es enorme se reduce, se lee con OCR, se parsea y se guarda en
invoice_db/. - Pulsas el micrófono. El navegador graba WAV a 16 kHz y lo envía a
/api/voice-process. - Idioma de ida y de vuelta. Detectamos
es/en/pt/fr, pasamos la pregunta a inglés para el modelo y devolvemos la respuesta hablada en tu idioma. - Respuestas ancladas al documento. Preguntas simples (total, número, vencimiento) salen del JSON parseado. El LLM solo entra cuando hace falta el contexto de la factura.
Por qué QVAC
Antes de este hackathon no habíamos usado QVAC. Fue el motor de casi todo: voz (Whisper + TTS), traducción (Salamandra), LLM y OCR, sin mandar datos a la nube.
En pocas horas pasamos de cero a un producto que transcribe, traduce, lee facturas y habla. Es una herramienta enorme para prototipar y para llevar IA al dispositivo. Si estás construyendo algo local —asistente, OCR, audio— vale mucho la pena probarlo.
El cliente es tetherto-qvac-sdk y un worker Bare en la misma máquina.
Stack técnico
- UI: HTML, Tailwind, assets de marca Qconta
- Runtime IA: QVAC (Tether) — primera vez que lo usamos
- API: Python, FastAPI, Uvicorn
- ASR: Whisper + Silero VAD
- LLM: Qwen3-1.7B (4B opcional), fallback Llama 3.2 1B
- Traducción: Salamandra TA 2B
- TTS: Supertonic
- OCR: QVAC ggml-ocr (Latin) + CRAFT y un parser propio de facturas
- Almacenamiento: JSON local + imágenes subidas
De lo que estamos orgullosos
- Es nuestro primer hackathon. Nunca habíamos competido en uno, y aun así salimos con un producto que se puede demoar: se sube una factura, se habla y el sistema responde.
- Nunca habíamos hecho un asistente de voz. Grabar, transcribir, entender la pregunta y devolver audio era territorio nuevo; QVAC nos dio Whisper, el LLM y el TTS para armar ese ciclo de punta a punta.
- Nunca habíamos metido transcripción ni traducción en un proyecto. Detectar idioma, pasar a inglés para el modelo y devolver la respuesta en español, inglés, portugués o francés lo resolvimos con Salamandra y el pipeline de QVAC.
- QVAC nos dio todas las herramientas. OCR, voz, traducción y modelos locales en el mismo runtime, sin nube. No lo habíamos usado nunca y en el tiempo del evento nos alcanzó para un demo usable.
- Una voz corta y hablada, no un ensayo de chatbot: una o dos frases, en el idioma del usuario.
- Un nombre que se entiende en un segundo: ¿Qué conta voz?
Hacki