Files
captionninja/CAPTION-LOCAL.md

3.1 KiB

Use your own speech recognition server

capture-local.html is a separate capture page for Caption Local. It does not require a cloud transcription account, and does not load into the existing capture pages. Run the service on your Windows/Linux computer or reach it through an SSH tunnel.

New to self-hosting? See the visual workflow, hosting choices and actual capture screen before choosing which parts to run yourself.

For fully private caption delivery, also run the optional Caption Ninja relay and open the capture page from a room admin link. The room's derived relay address and credentials are filled automatically; the admin secret never reaches the relay.

Use the current Caption Local and captionninja fork source; the published v1.1.0 does not include the room model. Start with the service's bundled http://localhost:8765/capture-local.html page for local-only use. See its setup and requirements guide for exact commands, private hosting, rooms, hardware choices and measured limits.

On this site's page, open the admin link from your deployment. It establishes a same-origin room cookie; the page then connects to the room config automatically. The service must explicitly allow this site's origin. Browser local-network access may also need permission; use the bundled localhost page if blocked. Do not disable browser security or expose an unauthenticated inference port. The manual relay and token fields remain for legacy cross-origin setups only.

Choose a microphone, spoken language and transcription/English translation mode. Start capture, then Stop and let buffered speech finish before downloading text. Expect several seconds of delay and recognition mistakes, especially with noise. The diagnostics panel shows buffering, response duration, queue/inference time and errors. Settings/diagnostic downloads exclude keys, tokens and room names.

Sharing is off by default outside a room. In a room, reviewed text goes to the public audience link; direct overlay publishing is an explicit editor option. The existing overlay/editor and downstream TTS features consume ordinary caption messages. No Google/Gemini/ OpenAI STT or TTS engines are bundled in this page. Models, CUDA, authentication and concurrency configuration remain in the Caption Local repository.

Maintaining the copy

The caption-local/ directory is an MPL-2.0 bundle copied from Caption Local's canonical static/ directory. Its LICENSE and SHA-256 manifest are included. There is no runtime CDN dependency. Update from a reviewed Caption Local checkout:

python scripts/sync_capture_page.py /path/to/captionninja
python scripts/sync_capture_page.py /path/to/captionninja --check

Commit the page, assets and manifest together. Test with a local mock relay; never send synthetic test captions to a real room. The separate page adds one navigation link to the main capture page and no new dependencies to existing pages.