Mem Lines
Practice a script until it sounds like yours.
A browser rehearsal room for actors, speakers, students, and anyone learning spoken text.
Start a rehearsal01 / Overview
What Mem Lines does
Mem Lines reads the other parts of a script aloud, waits for your part, and listens as you say it. The line is compared as you speak, so practice can keep moving without stopping to type.
It is designed for a focused, repeatable loop: hear the scene, say your lines, see what matched, then run it again with less help.
02 / First run
From document to rehearsal
- Add your material. Choose one or more PDFs, text files, or images, or paste lines.
- Arrange and start. Reorder documents, wait for each one to say Ready, then press Start.
- Choose your part. Mem Lines turns the extracted dialogue into a cast list.
- Rehearse. Hear partner lines, tap Dictate or use Automatic mic mode on your turn, and continue when the line passes.
- Repeat or hide help. Loop a cue, hide your lines, or use the controls to move through the scene.
03 / Practice surface
Small tools for a better memory loop
Ordered documents
Combine pages from several sources and keep their order visible before rehearsal.
Text and image intake
Use PDF text layers when available, with local OCR for scans and images.
Live matching
Partial speech lights words as they are heard. Green is a close match; amber marks a word to revisit.
Three voice paths
Natural is the default browser voice, Studio prioritizes quality, and Built-in is the fastest device fallback.
Hide mine
Blur your upcoming lines while keeping the scene around them readable.
Local-first rehearsal
Speech, voice, and OCR normally run in the browser. Cloud speech is a clearly marked fallback.
04 / State map
The rehearsal loop
Every state has one job: prepare, listen, match, or move.
05 / Cloudflare
What runs at the edge
Cloudflare Pages serves the web app. Pages Functions provide the same-origin endpoints used for the optional Cloud speech fallback and its usage meter.
The fallback sends a short recording to Workers AI Whisper when local speech is unavailable. D1 stores the app’s daily estimated usage so the shared allowance can be shown and reserved. Uploaded scripts are processed in the browser and are not stored by these endpoints.
06 / Usage
What a neuron means here
A neuron is Mem Lines’ estimate for Cloudflare AI speech usage. It is a meter, not a score for your acting and not a measure of how much you have memorized.
Local speech uses no cloud neurons. A cloud recording is estimated at 46.63 neurons per minute, bounded by the recording limit and the app’s daily allowance. The meter resets at 00:00 UTC; when the allowance is unavailable or full, local speech remains the path to try.
07 / Architecture
One rehearsal, five moving parts
Owns the interface, document queue, parsing, OCR, voice playback, local Whisper, and word matching.
Turns extracted rows into cues, tracks the selected part, and advances only when the current line matches.
Hosts the static app and coordinates the optional short-audio transcription and usage endpoints.
Represent estimated cloud speech consumption for the always-visible allowance meter.
The browser keeps local preferences and model caches; D1 keeps the server-side daily usage estimate.
08 / Help
Troubleshooting and FAQ
My PDF is still processing.
Keep the page open while the per-document bar moves to Ready. Scanned PDFs and large images take longer because OCR runs locally. If a file fails, use Retry or paste its text into the editor.
The script needs repair. What should I do?
Review mode shows the extracted lines. Label spoken cues as NAME: line, remove page furniture, then choose Use this script.
The microphone is gray or does not start.
Allow microphone access for memlines.com, then tap Dictate again. Automatic mode starts listening on your turn; Tap / space gives you explicit control.
Why did cloud speech stop?
Cloud speech has a shared daily app allowance. The meter shows its estimate and reset time. Try local speech, or wait for the next UTC reset.
Does Mem Lines save my script?
The browser processes the script for the current rehearsal. The documented Cloudflare endpoints handle short fallback audio and usage metering, not script storage.
Mem Lines
Rehearse your lines against the scene.
Which part are you reading?
One line per cue, written as NAME: line.