submaster/whisper_project/cli/orchestrator.py

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()