5.5 KiB
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.
- Dry-run (ver qué pasaría sin ejecutar cambios)
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
- Ejecutar la canalización completa (traducción local con MarianMT y reemplazo)
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
- Mezclar (mix) en lugar de reemplazar la pista original
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
- Conservar archivos temporales y WAV por segmento (útil para debugging)
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
- Traducción con Gemini (requiere clave)
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
- Uso directo de
srt_to_kokoro.pysi ya tienes un SRT traducido
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-templatey las comillas/escaping. - Si
ffmpegfalla: revisa queffmpegyffprobeesté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 localsi la traducción remota falla.
Recomendaciones
- Automatización/CI: siempre usar
--dry-runen la primera ejecución para confirmar pasos. - Integración: invoca
whisper_project/main.pydirectamente desde procesos automatizados;run_full_pipeline.pysigue disponible como shim por compatibilidad. - Limpieza: cuando ya no necesites los scripts de
examples/, considera moverlos adocs/examples/o mantenerlos como referencia, y sustituir los shims por llamadas directas a los adaptadores enwhisper_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):
- 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
- 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
- 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
- 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
- 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.