Project
Voice-paced Teleprompter
Python / FastAPI
Web Speech API
HTMX
Vanilla JS
TailwindCSS
WebSockets
Problem
Classic teleprompters scroll at a constant speed. Speak faster or slower and the text stops matching. One pause, one stumble, one bit of improvising, and you lose your place.
Solution
- → Real-time speech recognition via the Web Speech API — no local model, no latency from an external API
- → Fuzzy-matching algorithm (Levenshtein distance) tracks the current position in the script through stumbles and phrasing that doesn't match word for word
- → Speed-adaptive lookahead: an SPM measurement (syllables per minute) dynamically adjusts how far ahead the system looks (1–3 words)
- → Smooth scrolling via a PID-like controller — no jarring jumps, proportional approach to the target position
- → Beam feature: mirror the script over WebSocket to any number of devices — ideal for camera setups with a separate prompter display
Result
A usable product, shipped as a web app — no app store, no install. The teleprompter follows your speaking pace in real time, no manual control needed. Speech recognition runs locally in the browser, so no ongoing API costs. The beam feature enables professional multi-device setups with no extra hardware.
Video not loading? Watch on YouTube
Facing something similar?
Let's talk