Skip to content

Repository files navigation

voxify

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.

La idea

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.

Uso

cd desktop
pip install -r requirements.txt
python server.py          # queda escuchando en http://localhost:7860

Y 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.

Qué hay dentro

  • 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.

Limitaciones honestas

  • 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.

Créditos

faster-whisper (CTranslate2) para la transcripción y soundcard para la captura nativa.

Licencia

MIT — ver LICENSE.

About

Transcripción de reuniones en español con separación de hablantes sin diarización: micrófono y loopback del sistema como canales independientes. faster-whisper, todo local.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages