🌐 Caption.Ninja Translation Guide

Quick Start: Caption.Ninja translates captions in real-time using Mozilla Bergamot, an open-source translation engine that runs entirely in your browser. No API keys or external translation services are used.

Translation Methods Overview

Method Languages Cost Quality Setup Required Best For
Local Translation
(Mozilla Bergamot)
17 languages Free Good None Personal use, privacy-focused

Method 1: Direct Overlay Translation (Simplest)

Free Local Translation

Add translation directly to any overlay URL using Mozilla's Bergamot translation engine.

overlay.html?room=yourRoomID&translate=es

Supported Languages:

bg (Bulgarian), cs (Czech), nl (Dutch), en (English), et (Estonian), de (German), fr (French), is (Icelandic), it (Italian), nb (Norwegian Bokmål), nn (Norwegian Nynorsk), fa (Persian), pl (Polish), pt (Portuguese), ru (Russian), es (Spanish), uk (Ukrainian)

URL Parameters:

Translation is local-only. Remote providers (Google Cloud Translation, OpenAI-compatible and Anthropic APIs) are not part of this fork; captions and models never leave your browser or the deployment host.

Method 2: Premium Translation Page

The premium translation page provides a full interface for speech recognition and translation.

Features:

Workflow:

  1. Open translate_premium.html
  2. Select source and target languages
  3. Enable microphone and start speaking
  4. Use the generated overlay URL in OBS

Method 3: Free Translation Page

The free translation page uses local Mozilla Bergamot models.

Features:

Note: First-time use requires downloading translation models (~20MB per language pair).

Advanced Features

🌍 Multiple Language Overlays

Create separate overlay windows for different languages:

Window 1: overlay.html?room=abc&translate=es
Window 2: overlay.html?room=abc&translate=fr
Window 3: overlay.html?room=abc&translate=de

📝 Context-Aware Translation

Include previous messages for better translation accuracy:

&context=1&contextsize=5

Especially useful for conversations and technical content.

🔊 Text-to-Speech Integration

Add speech synthesis to translated captions:

&speech=1&voice=US English

Supports native browser TTS and optional TTS services, with no cloud dependency.

🎨 Styling Options

Customize overlay appearance:

&clear=1&showtime=3000&html=1

Control caption persistence and formatting.

Multi-Language Speakers

Handling Speakers Who Switch Between Languages

For events where speakers alternate between languages (e.g., French and English), Caption.Ninja offers two approaches:

Option 1: Manual Language Toggle (Free)

Add a quick-switch toggle to the capture page that lets a producer switch between languages on the fly:

index.html?room=yourRoom&lang=en-US&togglelang=en-US,fr-FR

Workflow:

  1. Open index.html?room=myroom&lang=en-US&togglelang=en-US,fr-FR
  2. Open overlay.html?room=myroom&translate=en in OBS
  3. When speaker switches to French, press Ctrl+L or click the toggle
  4. French speech will be transcribed and translated to English

Option 2: Auto-Detect Language (Removed)

Automatic source language detection required a remote translation provider and is no longer available. This fork is local-only.

Language Codes Reference

Full Language Code List: View all supported language codes at:

Common Use Cases

Live Streaming with Multi-Language Support

  1. Set up your main caption source (e.g., speechin.html)
  2. Create multiple overlay URLs with different target languages
  3. Add each overlay as a separate browser source in OBS
  4. Position overlays for different regions or create scene variants

International Conferences

  1. Use translate_premium.html for source language input
  2. Enable context-aware translation for accuracy
  3. Create overlay URLs for each target language
  4. Provide separate streams or overlay options for attendees

Troubleshooting

Common Issues:

Cost Considerations

Local Translation Pricing