Transcripción de reuniones en español con separación de hablantes y sin diarización. Todo el procesamiento ocurre en tu propio equipo: el audio nunca sale de él.
Saber quién dijo qué en una grabación es el problema caro. La vía habitual es la
diarización: analizar una pista mezclada e intentar agrupar los fragmentos por voz.
Requiere pyannote, torch, un token de Hugging Face y aceptar modelos con licencia
restringida — y aun así se equivoca cuando dos personas se solapan o suenan parecido.
voxify no resuelve ese problema: lo esquiva. En una videollamada el ordenador ya tiene las dos voces por caminos separados:
| Canal | Fuente | Quién es |
|---|---|---|
| 1 | Micrófono | Yo |
| 2 | Loopback del sistema (WASAPI) | Interlocutor |
Cada canal se graba y se transcribe por separado con faster-whisper, y las dos transcripciones se fusionan por marca de tiempo. La atribución no se estima: viene dada por la fuente del audio, así que es exacta por construcción — incluso cuando los dos hablan a la vez.
El efecto secundario es que sobra media pila de dependencias: sin pyannote, sin torch,
sin token de Hugging Face.
cd desktop
pip install -r requirements.txt
python server.py # queda escuchando en http://localhost:7860Y abre index.html (o instálalo como PWA desde el navegador). En macOS y Windows hay
atajos: start-mac.command y start-windows.bat.
Variables opcionales:
| Variable | Por defecto | Valores |
|---|---|---|
VOXIFY_MODEL |
medium |
small, medium, large-v3 |
PORT |
7860 |
cualquiera |
Usa CPU con cuantización int8; si detecta CUDA pasa solo a float16.
desktop/server.py— backend FastAPI: captura, transcribe y fusiona canales.index.html,app.js,sw.js,manifest.json— PWA que habla con el backend local.start-mac.command,start-windows.bat— arranque en un clic.
Endpoints: GET /api/health, POST /api/record/start, POST /api/record/stop,
POST /api/transcribe.
- El loopback de sistema es de Windows. La captura de dos canales usa WASAPI a través
de
soundcard. En macOS y Linux funciona la transcripción de ficheros, pero la captura del audio del sistema necesita un dispositivo virtual (BlackHole, PulseAudio monitor). - Dos hablantes, no una sala. El diseño asume una llamada: tú y el otro lado. Para cuatro personas en la misma habitación con un solo micrófono, esto no sirve — ahí sí hace falta diarización.
- Una transcripción a la vez. El servidor no tiene cola.
- Es español. El idioma va fijado; cambiarlo es una línea en
server.py.
faster-whisper (CTranslate2) para la transcripción y soundcard para la captura nativa.
MIT — ver LICENSE.