Aplicacion local para transcribir audio con Whisper y, opcionalmente, realizar diarizacion de hablantes con pyannote.
La solucion se centra en dos programas principales:
transcriber_gui.py: interfaz grafica para usuarios finales.transcriber_dia.py: motor de transcripcion/diarizacion usable por consola.
- Python 3.10 o superior.
ffmpeginstalado y disponible en elPATH.- Dependencias Python instaladas dentro de un ambiente virtual.
Crear el ambiente virtual:
python -m venv whisper_envActivarlo en PowerShell:
.\whisper_env\Scripts\Activate.ps1Activarlo en CMD:
whisper_env\Scripts\activate.batSi PowerShell bloquea la activacion por politicas de ejecucion, ejecuta:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserLuego instala las dependencias dentro del ambiente virtual:
python -m pip install -r requirements.txtEjecuta:
python transcriber_gui.pyLa GUI permite:
- Seleccionar un archivo de audio o video.
- Elegir modelo Whisper:
tiny,base,small,medium,large. - Definir idioma, por ejemplo
es. - Procesar audio con una barra de avance por etapa.
- Ver la transcripcion en pantalla.
- Copiar la transcripcion al portapapeles.
- Guardar automaticamente los resultados en la carpeta
output/.
Los archivos de salida se guardan con el nombre del audio. Si ya existe una salida con el mismo nombre, se agrega un sufijo numerico:
output/audio.txt
output/audio_detailed.txt
output/audio.json
output/audio_1.txt
output/audio_1_detailed.txt
output/audio_1.json
La diarizacion identifica hablantes usando pyannote.
-
Crea un token classic en Hugging Face:
- Entra a
Settings > Tokens. - Selecciona
New token. - Usa permiso
Read. - Habilita acceso a repositorios publicos gated si la opcion esta disponible.
- Entra a
-
Acepta las licencias/condiciones de los modelos pyannote:
-
Guarda el token como variable de entorno.
En Windows:
setx HF_TOKEN "hf_xxxxxxxxxxxxxxxxx"En Bash:
export HF_TOKEN=hf_xxxxxxxxxxxxxxxxxPara activarla en la GUI:
- Abre
Opciones > Carga de HF token. - Ingresa tu token de Hugging Face.
- Activa la opcion
Diarizacion. - Opcionalmente indica
Nro. hablantes.
El token se guarda localmente en .env:
HF_TOKEN=tu_token.env esta ignorado por Git y no debe compartirse.
Pyannote puede requerir aceptar condiciones en Hugging Face para los modelos:
pyannote/speaker-diarization-3.1pyannote/speaker-diarizationpyannote/segmentation-3.0
El programa intenta primero pyannote/speaker-diarization-3.1 y, si no esta disponible, usa como fallback pyannote/speaker-diarization.
Transcripcion simple:
python transcriber_dia.py audio.m4a -m base -l es -o output/audio.txtCon diarizacion:
python transcriber_dia.py audio.m4a -m base -l es -o output/audio.txt --diarize --hf-token TU_TOKEN --num-speakers 2Opciones principales:
-m, --model Modelo Whisper: tiny, base, small, medium, large
-l, --language Codigo de idioma, por ejemplo es
-o, --output Archivo de salida base
--diarize Activa diarizacion de hablantes
--hf-token Token de Hugging Face
--num-speakers Numero esperado de hablantes
--no-progress Desactiva barras de progreso internas
-v, --verbose Muestra informacion detallada
Los modelos Whisper se descargan y cargan desde la carpeta local:
models/
Si el modelo no existe, se descarga automaticamente. Si ya existe, se reutiliza.
Al indicar un archivo de salida, se generan:
.txt: transcripcion simple._detailed.txt: transcripcion con timestamps y hablantes si aplica..json: resultado completo.
- La primera ejecucion de un modelo puede tardar porque descarga pesos.
- La diarizacion puede tardar bastante mas que la transcripcion.
- Para audios
.m4a,.mp3o.mp4, el programa convierte temporalmente a WAV 16 kHz mono para pyannote. - Si hay GPU CUDA disponible, Whisper usa GPU y
fp16automaticamente.
Este proyecto se distribuye bajo licencia MIT.
La instalacion principal recomendada es con venv, pero Conda puede ser util si necesitas controlar mejor versiones de torch, ffmpeg, CUDA o dependencias cientificas.
Si existe un archivo environment.yml, puedes crear el ambiente con:
conda env create -f environment.yml
conda activate whisper_envEn Windows, si no tienes modo desarrollador activado, Hugging Face y SpeechBrain pueden mostrar advertencias por uso de symlinks. Para evitarlo, configura:
setx HF_HUB_DISABLE_SYMLINKS 1
setx SPEECHBRAIN_DOWNLOAD_STRATEGY copyDespues de ejecutar setx, cierra y vuelve a abrir la terminal para que las variables queden disponibles.
Si tienes GPU NVIDIA compatible, conviene instalar PyTorch con CUDA para acelerar Whisper y parte del procesamiento de diarizacion.
En ese caso, ajusta el bloque de torch en environment.yml para usar CUDA en lugar de CPU. La configuracion exacta depende de tu version de CUDA y del soporte de PyTorch instalado.
Si no tienes GPU NVIDIA o no quieres configurar CUDA, usa la version CPU. Funcionara, pero sera mas lenta.