31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
"""CLI wrapper para el orquestador principal."""
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
from whisper_project.logging_config import configure_logging
|
|
import logging
|
|
from whisper_project.usecases.orchestrator import Orchestrator
|
|
|
|
|
|
def main():
|
|
p = argparse.ArgumentParser(prog="orchestrator", description="Orquestador multimedia: transcribe -> tts -> burn")
|
|
p.add_argument("src_video", help="Vídeo de entrada")
|
|
p.add_argument("out_dir", help="Directorio de salida")
|
|
p.add_argument("--dry-run", action="store_true", dest="dry_run", help="No ejecutar pasos que cambien archivos")
|
|
p.add_argument("--translate", action="store_true", help="Traducir SRT antes de TTS (experimental)")
|
|
p.add_argument("--tts-model", default="kokoro", help="Modelo TTS a usar (por defecto: kokoro)")
|
|
p.add_argument("--verbose", action="store_true", help="Mostrar logs detallados")
|
|
args = p.parse_args()
|
|
|
|
# configurar logging (archivos y consola)
|
|
configure_logging(args.verbose)
|
|
|
|
orb = Orchestrator(dry_run=args.dry_run, tts_model=args.tts_model, verbose=args.verbose)
|
|
res = orb.run(args.src_video, args.out_dir, translate=args.translate)
|
|
if args.verbose:
|
|
logging.getLogger(__name__).debug(res)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|