Skip to content

About

Subtítulos automáticos, traducción y texto a voz para Windows, con IA local y sin conexión

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Subtitular

Subtítulos automáticos para Windows, en tu PC y sin conexión. Le das un video o un audio y te devuelve el .srt, si quieres traducido a otro idioma o leído en voz alta.

Fase 3 completada: distribución AOT autocontenida (zip e instalador Inno Setup), entrada de catálogo firmado de Rodaje y flujos de GitHub Actions.

Qué hay

  • Subtitular.exe (ventana): suelta un video o audio (o varios: se procesan en cola y cada uno se guarda al terminar), elige idioma, formato (SRT/VTT), carpeta, «Traducir a…» y «Leer en voz alta»; barra de progreso por etapa y por archivo, Cancelar, vista previa editable bloque a bloque y Guardar. Recuerda lo último elegido, abre la carpeta del resultado al terminar y responde a Ctrl+O y Ctrl+Entrar. Los errores salen en español dentro de la ventana. Avisa con una franja discreta cuando hay una versión nueva en GitHub (como mucho una consulta cada 24 h, sin cuenta; se puede apagar en Ajustes y hay «Buscar actualizaciones» para consultar al momento); «Ver novedades» abre la release y, si el Lanzador está instalado, «Abrir el Lanzador» lleva a quien la instala.
  • Subtitular.Cli.exe: Subtitular.Cli video.mp4 [--idioma es] [--formato vtt] [--traducir en] [--voz] [--salida carpeta]. Deja video.srt (o video.en.srt) y, con --voz, video.wav con cada frase en su tiempo.
  • Toda la lógica vive en Subtitular.Core; la ventana y la CLI solo la llaman. Cifras en docs/informe-fase-1.md y docs/informe-fase-2.md.

Cómo funciona

  • Saca el audio del archivo con FFmpeg (LGPL).
  • Lo pasa a los módulos de IA de Rodaje, que corren como procesos aparte y hablan con la app por una tubería con nombre (protocolo de módulos v1):
    • modulo-subtitulos: Whisper (whisper.cpp) en la GPU por Vulkan, o en la CPU.
    • modulo-traducir: Qwen3-4B-Instruct en llama.cpp.
    • modulo-voz: Kokoro-82M en ONNX Runtime, con fonemizador propio para español.
  • Los modelos se bajan una sola vez desde el catálogo firmado de Rodaje y se comprueba su SHA-256.

Cómo se ejecuta (desarrollo)

git clone --recursive https://github.com/Dathinel/subtitular
cd subtitular
powershell -NoProfile -ExecutionPolicy Bypass -File build\preparar-entorno.ps1
build\dotnet.cmd build src\Subtitular.slnx
build\publicar.cmd

build\publicar.cmd deja la ventana y la CLI publicadas con Native AOT en dist\Subtitular\. Los módulos de IA (Rodaje.Module.Subtitles.exe, .Translate.exe, .Voice.exe) se buscan en SUBTITULAR_MODULOS, donde los instala el Lanzador (%LOCALAPPDATA%\Dathinel\Comun\modulos\modulo-*\<versión>), donde los instala Rodaje (%LOCALAPPDATA%\Rodaje\complementos\modulos\modulo-*) o junto al exe (modulos\).

El SDK de .NET y FFmpeg se instalan en .entorno\ con huella fijada, sin tocar nada global. Los scripts son los de Rodaje (submódulo externo/rodaje, fijado a un commit). Para no bajar el SDK otra vez se puede apuntar RODAJE_ENTORNO al .entorno de Rodaje.

Distribución y catálogo

Para empaquetar la distribución:

powershell -NoProfile -ExecutionPolicy Bypass -File build\distribuir.ps1

Genera en dist\:

  • Subtitular-<versión>-win-x64.zip: autocontenido (App, Cli, el runtime del Windows App SDK que exige AOT, licencias y README corto). 26,2 MB; el instalador, 16,8 MB; la App pinta su primer cuadro en menos de 300 ms desde una carpeta limpia.
  • Subtitular-<versión>-instalador.exe: instalador por usuario con Inno Setup (sin permisos de administrador; se baja a .entorno con huella fijada).
  • SHA256SUMS: huellas de los artefactos.
  • notas-version.md: notas extraídas desde CHANGELOG.md.
  • catalogo-subtitular.json: entrada app para el catálogo firmado de Rodaje.

Firma del catálogo: build\catalogo-entrada.ps1 deja el JSON en dist\catalogo-subtitular.json sin firmar; Daniel lo firma con la clave privada del catálogo usando firmar-indice.ps1 del repositorio Dathinel/rodaje-catalogo.

Licencia

GPLv3, solo la versión 3 (GPL-3.0-only). Va con GPLv3 porque reutiliza código de Rodaje (el protocolo de módulos, entre otras piezas) y sus módulos de IA, que son GPLv3. Ver LICENSE y LICENCIAS.md.

Basado en el editor de video de código abierto de Dathinel / Rodaje.

About

Subtítulos automáticos, traducción y texto a voz para Windows, con IA local y sin conexión

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages