## Ejemplos rápidos de uso

Este archivo reúne comandos prácticos para probar la canalización y entender las opciones más usadas.

Nota: el entrypoint canónico es `whisper_project/main.py`. El fichero histórico
`whisper_project/run_full_pipeline.py` existe como shim y delega a `main.py`.

1) Dry-run (ver qué pasaría sin ejecutar cambios)

```bash
PYTHONPATH=. python3 whisper_project/main.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.example/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" \
  --voice em_alex \
  --whisper-model base \
  --dry-run
```

2) Ejecutar la canalización completa (traducción local con MarianMT y reemplazo)

```bash
PYTHONPATH=. python3 whisper_project/main.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.example/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" \
  --voice em_alex \
  --whisper-model base \
  --translate-method local
```

3) Mezclar (mix) en lugar de reemplazar la pista original

```bash
PYTHONPATH=. python3 whisper_project/main.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.example/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" \
  --voice em_alex \
  --whisper-model base \
  --mix \
  --mix-background-volume 0.35
```

4) Conservar archivos temporales y WAV por segmento (útil para debugging)

```bash
PYTHONPATH=. python3 whisper_project/main.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.example/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" \
  --voice em_alex \
  --whisper-model base \
  --keep-chunks --keep-temp
```

5) Traducción con Gemini (requiere clave)

```bash
PYTHONPATH=. python3 whisper_project/main.py \
  --video dailyrutines.mp4 \
  --translate-method gemini \
  --gemini-key "$GEMINI_KEY" \
  --kokoro-endpoint "https://kokoro.example/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" \
  --voice em_alex
```

6) Uso directo de `srt_to_kokoro.py` si ya tienes un SRT traducido

```bash
PYTHONPATH=. python3 whisper_project/srt_to_kokoro.py \
  --srt translated.srt \
  --endpoint "https://kokoro.example/api/v1/audio/speech" \
  --payload-template '{"model":"model","voice":"em_alex","input":"{text}","response_format":"wav"}' \
  --api-key "$KOKORO_TOKEN" \
  --out out.wav \
  --video input.mp4 --align --replace-original
```

Payload template (Kokoro)

El parámetro `--payload-template` es útil cuando el endpoint TTS espera un JSON con campos concretos. El ejemplo anterior usa `{text}` como placeholder para el texto del segmento. Asegúrate de escapar las comillas cuando lo pases en la shell.

Errores frecuentes y debugging rápido
- Si el TTS devuelve `400 Bad Request`: revisa el `--payload-template` y las comillas/escaping.
- Si `ffmpeg` falla: revisa que `ffmpeg` y `ffprobe` estén en PATH y que la versión sea reciente.
- Para problemas de autenticación remota: verifica las variables de entorno con tokens (`$KOKORO_TOKEN`, `$GEMINI_KEY`), o prueba `--translate-method local` si la traducción remota falla.

Recomendaciones
- Automatización/CI: siempre usar `--dry-run` en la primera ejecución para confirmar pasos.
- Integración: invoca `whisper_project/main.py` directamente desde procesos automatizados; `run_full_pipeline.py` sigue disponible como shim por compatibilidad.
- Limpieza: cuando ya no necesites los scripts de `examples/`, considera moverlos a `docs/examples/` o mantenerlos como referencia, y sustituir los shims por llamadas directas a los adaptadores en `whisper_project/infra/`.

Si quieres, añado ejemplos adicionales (p.ej. variantes para distintos proveedores TTS o payloads avanzados).
EXAMPLES - Pipeline Whisper + Kokoro TTS

Ejemplos de uso (desde la raíz del repo, usando el venv .venv):

1) Dry-run (muestra los comandos que se ejecutarían):

.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.bfzqqk.easypanel.host/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" --voice em_alex \
  --whisper-model base --dry-run

2) Ejecución completa (reemplaza el audio):

.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 \
  --kokoro-endpoint "https://kokoro.bfzqqk.easypanel.host/api/v1/audio/speech" \
  --kokoro-key "$KOKORO_TOKEN" --voice em_alex \
  --whisper-model base

3) Usar un SRT ya generado (evita transcribir):

.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 --srt subs_en.srt \
  --kokoro-endpoint "https://kokoro..." --kokoro-key "$KOKORO_TOKEN" --voice em_alex

4) Traducir con Gemini (si tienes clave) o usar fallback local:

# Usar Gemini (requiere --gemini-key o la variable GEMINI_API_KEY)
.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 --translate-method gemini --gemini-key "$GEMINI_KEY" \
  --kokoro-endpoint "https://kokoro..." --kokoro-key "$KOKORO_TOKEN" --voice em_alex

# Forzar traducción local (MarianMT):
.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 --translate-method local \
  --kokoro-endpoint "https://kokoro..." --kokoro-key "$KOKORO_TOKEN" --voice em_alex

5) Mezclar (mix) en lugar de reemplazar:

.venv/bin/python whisper_project/run_full_pipeline.py \
  --video dailyrutines.mp4 --mix --mix-background-volume 0.3 \
  --kokoro-endpoint "https://kokoro..." --kokoro-key "$KOKORO_TOKEN" --voice em_alex

Notas:
- Si algo falla con Gemini, el pipeline soporta fallback a la traducción local.
- Usa --keep-temp y/o --keep-chunks para inspeccionar los WAV intermedios.
- Ajusta --whisper-model a "base", "small", "medium" según recursos.
