A native Windows desktop application that serves as a transparent teleprompter overlay. It sits directly under the laptop camera and automatically scrolls by matching the user's live speech to a pre-inputted script.
Get the latest beta build: https://github.com/shbez/telenotch/releases/latest
All beta releases: https://github.com/shbez/telenotch/releases
For Windows, download the asset named:
NativeTele-win-x64-<version>.zip
- Language: C#
- Framework: .NET 8.0/9.0/10.0 WPF (Windows Presentation Foundation)
- Speech Engine: System.Speech.Recognition (Native Windows Desktop Speech API)
- Windowing: Win32 API Interop (User32.dll) for advanced transparency and click-through.
Use this checklist before shipping a beta build.
- Build in Release mode:
dotnet build -c Release
- Publish a self-contained Windows x64 build:
dotnet publish NativeTele.csproj -c Release -r win-x64 --self-contained true
- Smoke-test on a clean Windows user profile:
- App launches with no startup exceptions
- Overlay is topmost/frameless/transparent
- Ghost Mode can be exited with
Esc - Speech starts, aligns script, and pauses scrolling on silence
- App exits cleanly from tray without mic lockups
- Verify logs path exists for crash diagnostics:
%LOCALAPPDATA%\\NativeTele\\logs
- Package the published folder with:
- executable
- default settings file (optional)
- short beta notes and known issues
- No build warnings or errors in Release.
- No unhandled exceptions during 10+ minute continuous usage.
- No stuck recognition session after repeated start/stop and app restart.
- Manual scroll override remains responsive while speech tracking continues.
- Settings persist across restarts.
- Frameless: No title bar, borders, or standard Windows chrome.
- Topmost: Stays above all other applications (Zoom, Teams, Browsers).
- Transparency: Support per-pixel transparency with a dark-glass effect.
- Ghost Mode (Click-Through): Toggleable state using WS_EX_TRANSPARENT to allow mouse clicks to pass through the prompter to underlying apps.
- Positioning: Default to top-center of the primary screen, directly under the webcam.
- Engine: System.Speech.Recognition.SpeechRecognitionEngine.
- Sync Method:
- High-accuracy phrase matching using Choices.
- Adaptive Velocity Scrolling: Scroll velocity is derived from real-time Words Per Minute (WPM) and font size heuristics.
- WPM Calculation: Uses RecognitionResult.Audio.Duration for precise speaking pace tracking, stabilized with a 12-sample median filter.
- Manual Override: Suspend programmatic scrolling for 500ms after user scroll events.
- Fuzzy Matching: Handles minor mispronunciations or skips using an intersection-based similarity score (CalculateMatchScore) and a 10-segment sliding window.
- Reliability: Built-in watchdog timer to auto-restart the speech engine if it silently stops.
- System Tray Integration: Toggle Ghost, Stealth, and Zen modes directly from the taskbar tray icon.
- Visuals: Dark semi-transparent pill container with 30px corner radius.
- Focus Zone: Highlights the current segment with scale and opacity transitions (Active: 1.05x scale / 1.0 opacity; Completed: 0.95x scale / 0.2 opacity).
- Status Indicators:
- WPM Indicator: Neon Green (#39FF14) Pace indicator in the right corner.
- Confidence Indicator: Real-time color-coded dot (Green/Yellow/Red) showing speech recognition accuracy.
- Waveform Indicator: Vertical-bar style audio level feedback in the left corner.
- Indicators collapse automatically when idle or without a script.
- Smooth Scrolling: Advanced physics engine with exponential smoothing and spring damping for buttery-smooth movement via CompositionTarget.Rendering.
- Keyboard Shortcuts:
Ctrl + G: Toggle Ghost Mode (Click-Through)Ctrl + S: Toggle Stealth Mode (Screen Capture Protection)Ctrl + R: Reset ScriptUp/Down Arrows: Manual page navigation
- Setup WPF project with transparency and borderless styling.
- Implement window dragging and "Always on Top" behavior.
- Implement System.Speech listener and default audio device input.
- Connect microphone input to the recognition engine.
- Script parsing into logical 6-word segments.
- Velocity-based scrolling engine implementation.
- Syncing speech "Recognized" events to the progress pointer.
- Click-through (Ghost Mode) logic implementation.
- Refined pill aesthetics with corner-anchored status indicators.