All projects

Web App

YarnScript

YarnScript is an AI-powered teleprompter that follows your voice instead of scrolling at a fixed speed. It combines live transcription with semantic matching to track where you are in a script — even when you skip words, ad-lib, rephrase a section, or jump ahead. Paste a script or upload a text file, allow microphone access, and begin reading: spoken text is highlighted in real time while the active line stays centered.

A teleprompter that listens while you speak.

yarn-script.vercel.app

From pasted script to live delivery.

Paste a script, allow microphone access, and start reading. AssemblyAI transcribes your voice over a WebSocket while YarnScript highlights each spoken word — and when you ad-lib, skip, or rephrase, semantic search over OpenAI embeddings recovers your position and keeps the active line centered.

Purpose

Explores a more natural approach to teleprompting. Rather than forcing a speaker to match an arbitrary scrolling speed, YarnScript allows the script to respond to the speaker — reducing the mental effort of keeping pace, recovering after a mistake, and finding the correct line so the reader can focus on delivery. The project was designed, built, and polished as a four-hour product sprint, with particular attention given to latency, speech alignment, and recovery when someone departs from the written script.

Key Features

Real-Time Voice Tracking

Streams microphone audio to AssemblyAI and receives live transcription updates while the user speaks.

Hybrid Script Alignment

Combines low-latency word matching with semantic recovery to keep the teleprompter synchronized.

Skip & Ad-Lib Recovery

Recognizes when the speaker has rephrased, skipped, or added content and searches ahead for the most likely continuation.

Intelligent Lookahead

Confidence thresholds and a controlled forward search window prevent isolated future words from pulling the teleprompter off course.

Automatic Scrolling

Keeps the active line centered with smooth scrolling based on spoken progress rather than a fixed timer.

Interactive Seeking

Click any word to jump forward or backward — tracking resets and resumes from that point.

Script Input & Upload

Supports scripts pasted directly into the editor or imported from a .txt file.

Reading Controls

Small, medium, and large text options, spoken-word highlighting, manual scrolling, auto-scroll recovery, rewind, and stop.

Prepared Semantic Search

Creates embeddings for sections of the script and stores them for fast similarity matching during the reading session.

Responsive Demo Experience

Polished browser demo with microphone status, session controls, progress feedback, and a limited live-transcription timer.

Tech Stack

frontend

Next.js 16React 19TypeScriptCSS ModulesWeb Audio APIWebSockets

backend

Next.js API RoutesAssemblyAI Streaming Speech-to-TextOpenAI text-embedding-3-smallConvex database & vector searchServer-side script preparationTemporary AssemblyAI auth tokens

infrastructure

VercelConvex cloud infrastructureVitestESLint