Little Big Ideas

Setup Documentation

Everything you need to get Multi-Language Live Captions running — from opening the app in your browser to your first live session.


Requirements

Before you begin, make sure you have the following:

  • A modern browserChrome, Edge, or Safari. Firefox works for most features.
  • Microphone or audio interfaceAny input device your browser can see will work.
  • Azure account with Cognitive ServicesThe free F0 tier is enough for most events.
  • A stable internet connectionA wired connection is recommended for live events.

Launching the App

There's nothing to install. The full app runs in the browser.

1. Open the app

Visit the hosted app in any modern browser:

text
https://multi-language-captions.littlebigideas.ca

2. Grant microphone access

Your browser will ask for permission to use the microphone. Click Allow. The app needs this to stream audio to Azure for transcription.

3. That's it

You'll land on the credentials panel. Enter your Azure key once and it's saved to your browser's local storage for next time — it never leaves your device.

Azure Speech Setup

The app uses Azure Cognitive Services for real-time speech recognition. You need a Speech resource key and region.

Create a Speech resource

  1. 1Go to portal.azure.com and sign in.
  2. 2Click Create a resource and search for Speech.
  3. 3Select your subscription, create a new resource group, choose a region close to your event, and select the Free F0 pricing tier.
  4. 4Once deployed, go to Keys and Endpoint in the resource menu. Copy KEY 1 and your Location/Region.

Enter your credentials

Paste your key and region into the credentials panel on first launch. They're stored in your browser's localStorage — nothing is sent to or stored on our servers.

Tip: if you use the app on a shared computer, use the Clear credentials button in the settings menu when you're done.

Azure Translator Setup (optional)

If you want to add a third language in addition to English and French, you can enable the Azure Translator service for on-the-fly translation of the transcribed text.

Create a Translator resource

Follow the same steps as for the Speech resource, but search for Translator instead. Then, in the credentials panel, expand Advanced and paste in:

  • Translator Key
  • Translator Region (e.g. eastus)
  • Translator Endpoint (defaults to the global endpoint)

Without this, the app runs in two-language mode (EN + FR) using Azure Speech's native multilingual recognition — no additional configuration needed.

Running a Session

Select your audio device

From the device dropdown, pick the microphone or audio interface input you want to transcribe. Click Start Captioning.

Share the viewer URL

Once a session is live, share this URL with your audience:

text
https://multi-language-captions.littlebigideas.ca/viewer

Anyone with the link can open it in any browser — desktop or mobile — and see captions update in real time. No login required.

End the session

Click Stopwhen you're done. The viewer page will show a “Session ended” message. You can start a new session any time without re-entering your credentials.

Troubleshooting

No audio devices appear in the dropdown

Make sure your browser has microphone permission for the site. In Chrome, click the padlock icon in the address bar and set Microphone to Allow, then reload.

Azure returns 401 Unauthorized

Double-check that your Speech key is correct and that the region matches the region of your Azure resource exactly (e.g. eastus, not East US).

Captions are delayed or choppy

Azure Speech works best on a stable network. Wi-Fi latency can cause buffering — use a wired connection when possible. Also pick an Azure region close to your event location.

The browser tab freezes during a long session

Keep the app tab in the foreground. Some browsers throttle background tabs, which can stall the audio stream. Consider using a second browser window for other tasks.

Viewer shows 'Waiting for captions…' but the app is running

Make sure the viewer is on the same session URL your app is broadcasting to. If you reloaded the app mid-session, the viewer may need a refresh to reconnect.

Still stuck? Get in touch and include your browser, OS, and any error shown in the app or the browser's developer console.