Skip to content

shbez/TeleNotch

Repository files navigation

Native Windows Voice-Sync Teleprompter

Project Overview

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.

Download (Beta)

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

Technical Stack

  • 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.

Beta Release Runbook (Windows)

Use this checklist before shipping a beta build.

  1. Build in Release mode:
    • dotnet build -c Release
  2. Publish a self-contained Windows x64 build:
    • dotnet publish NativeTele.csproj -c Release -r win-x64 --self-contained true
  3. 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
  4. Verify logs path exists for crash diagnostics:
    • %LOCALAPPDATA%\\NativeTele\\logs
  5. Package the published folder with:
    • executable
    • default settings file (optional)
    • short beta notes and known issues

Beta Quality Gates

  • 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.

Core Features & Requirements

1. The "Floating" Pill Overlay

  • 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.

2. Speech Tracking Logic

  • 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.

3. UI/UX Refinement

  • 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 Script
    • Up/Down Arrows: Manual page navigation

Implementation Roadmap

Phase 1: Native Window Foundation [Completed]

  • Setup WPF project with transparency and borderless styling.
  • Implement window dragging and "Always on Top" behavior.

Phase 2: Speech Recognition Integration [Completed]

  • Implement System.Speech listener and default audio device input.
  • Connect microphone input to the recognition engine.

Phase 3: Advanced Text Alignment & Scrolling [Completed]

  • Script parsing into logical 6-word segments.
  • Velocity-based scrolling engine implementation.
  • Syncing speech "Recognized" events to the progress pointer.

Phase 4: Win32 Interop & UI Refinement [Completed]

  • Click-through (Ghost Mode) logic implementation.
  • Refined pill aesthetics with corner-anchored status indicators.

About

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.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages