01 / Product
One live line, read across the room.
I built the React and JavaScript interface, Node.js and Express API, matching flow, and multi-device session. Participants join by QR or session code; phones follow the projector without becoming extra control surfaces.
View projector evidence ↗The projector centers the selected known Gurbani line from shared session state.
Transliteration and English translation remain tied to the same selected line for shared viewing.
02-03 / Live system
Speech narrows the search; the application selects the line.
Web Speech API output is normalized and matched against known BaniDB text before the display changes.
Live recitation to room display

The operator can pause or resume microphone-driven recognition during the session.
Reader, language, size, spacing, and projector focus controls sit beside the active workspace.
The highlighted line is the current application result before it branches to projector and viewers.


The connected editor view exposes microphone status and start or stop controls.

The requesting device is connected but cannot send commands while another controller is active.
The visible action reflects a transfer request, not immediate ownership of the live display.
Recognition path
Speech input produces candidates, not display text.
The transcript is normalized, checked against BaniDB, and scored before the application selects a known line.
Application selection
Uncertain input can hold the current line.
Matching and confidence handling decide whether the application advances; raw transcript text never reaches the display.
Shared line, local display
Projector and viewers follow the same selected line.
Viewer font, size, language, and translation settings stay on each device and do not change the projector.
Editor ownership
Control changes only after approval.
A second device may request control, but remains a viewer until the current editor or main application approves the transfer.
04 / Application decision
Keep uncertain recognition away from the display.
decision 01
Keep known text and final selection under application control
- Context
- Recognition can be noisy; known lines can be textually close.
- Decision
- Fuzzy scores and confidence handling narrow BaniDB candidates before anything reaches the display.
- Reason
- Known text and projector authority remain in the application.
- Trade-off
- Uncertain input sometimes holds rather than advances.
05 / Limitations
What the current implementation cannot guarantee
- Browser dependency
- Speech recognition availability and behaviour are platform-dependent.
- Room conditions
- Noise, overlapping speech, and pronunciation weaken transcripts.
- Matching limit
- Similar lines and language variation remain ambiguous; a score is not proof.
- Display control
- One approved editor operates the projector; viewers cannot override it.
06 / Evidence
The next evidence, not a roadmap
07 / Reflection
Built for live use, not a demo
live outcome
Gurmat Saanj is in active use at a local Gurdwara, coordinating a shared projector with connected personal reading.
product lesson
Probabilistic recognition narrows ambiguity; known text, shared state, personal presentation, and editor approval remain explicit application behaviour.