Logo Lanfrica

jefftrojan/captioneer

Domaine:

natural language processing

Type de record:

software
Créateur:
jef
HĂ´te:
Add and translate video captions between English and Kinyarwanda # 🎬 Captioneer Add and translate video captions between **English and Kinyarwanda** — timestamps preserved. Captioneer can translate existing subtitle files **and** generate captions straight from a video's audio. It runs translation models **locally** and ships a slot for a **Rwanda-built model from Digital Umuganda / mbazaNLP** so you can compare a global model against a Kinyarwanda specialist. ## What it does - **Subtitle file → translated subtitles.** Open `.srt`/`.vtt`, translate every cue, download the result. Timing never changes. - **Video → captions → translation.** Upload a video/audio file; Whisper ASR transcribes it into timestamped cues, which you then translate. - **YouTube / URL → captions.** Paste a video link; Captioneer grabs the video's own captions if present (fast), otherwise downloads the audio (via `yt-dlp`) and transcribes it — then translate as usual. If a site blocks the download (bot-check), `yt-dlp` retries through alternate YouTube player clients (`android`/`web`/`tv` by default — configurable via `YT_DLP_PLAYER_CLIENTS`) before giving up. - **Two engines, side by side.** NLLB-200 (global, runs on-device) and a Digital Umuganda / Mbaza NLLB finetune (Kinyarwanda specialist). - **Clip trimming.** Pick a start/end range on the timeline to export or burn just that section instead of the whole video. - **Burn captions into the video.** Render the translated subtitles into the video with ffmpeg and download a finished `.mp4` (uploaded video or URL, full-length or trimmed to a range). - **Dub the audio.** Replace the video's original audio with synthesized speech in the translated language (Meta MMS-TTS), instead of or alongside burned-in captions. Per-cue speech that overflows its time slot is sped up (capped at 1.6x) to fit; a cue that finishes early just leaves silence. - **Live mic → captions.** Talk into the mic and captions fill in every few seconds (rolling ~4s windows over a websocket) — then translate as usual. Not instant transcri …