Help

How Oteria works, and what to do when it doesn’t.

What is Oteria?

A practice tool for anyone who reads scripted dialogue out loud — actors learning lines, kids rehearsing for plays, anyone recording an audition tape, even off-label uses like turning a textbook into a mini audiobook or prototyping a scripted podcast.

Paste a script, choose which character the AI plays, then read your lines aloud. The app listens through your microphone, advances when you’ve delivered the line, and plays the AI’s response.

Works best in Chrome (Web Speech API). Safari is okay. Firefox and Edge are limited.

Quick start

  1. From the home dashboard, click + New scene.
  2. Paste your script — or drop a PDF, take a photo of a script page, or hit AI cleanup to strip non-dialogue from a messy paste.
  3. Pick which character is yours, and which voices the AI characters get.
  4. Hit Start scene. Allow microphone access when the browser prompts.
  5. Click Begin scene. Read your lines aloud when prompted.

Script format

Standard screenplay format and CHARACTER: line format both work. The parser also handles:

  • Character names in CAPS on their own line, with dialogue underneath.
  • Paren directions like (soft, chilling) — auto-converted to v3 audio tags.
  • Inline brackets like [whispers] — passed straight to the AI voice as delivery cues.
  • Action lines, scene headings (INT./EXT.), and transitions (CUT TO) — stripped.
  • Pause markers (see below) — used as the beat before the next line.

If your script is messy or PDF-extracted, click AI cleanup to have Claude rewrite it into the clean format.

Pause markers

Drop a standalone [pause:Xs] on its own line to override the beat before the next line.

THERAPIST: How could you keep that from me?

[pause:3s]

JACK: I... I don't know.

Variants accepted:

  • [pause:2s] — 2 seconds
  • [pause:1.5s] — 1 and a half seconds
  • [pause:500ms] — half a second
  • [pause] — defaults to 1 second

Works in standard, memorisation, and performance modes. Inline [pause]inside a dialogue line still passes through to ElevenLabs as a v3 audio tag — the marker is only recognised on its own line, so the two don’t collide.

Modes & matching

Forgiving line-matching (default)
Advances on roughly 65% word match. Paraphrase is okay. Best for first-pass rehearsal.
Strict
Must match closely (~80%). Best for memorisation or when a take needs to land word-perfect.
Hide my lines (memorisation)
Your line text is hidden during your turn. You say it from memory; the matcher confirms.
Performance mode (audition tape)
Minimal UI — no top bar, no readout, dimmed controls, just the orb. Strict matching is forced. The beat between turns is configurable. Use this when recording an audition tape on your phone — the dark screen keeps reflections off your face.

Beat between turns

Performance mode lets you choose the silence between an AI line ending and the next line starting:

Tight (300ms)
Fast pace, snappy back-and-forth.
Natural (700ms, default)
Feels like real conversation.
Slow (1.5s)
Deliberate, considered.
Long (3s)
Dramatic pause before the AI responds.

Per-line [pause:Xs] markers override the scene-wide setting for that one transition.

Speeds

Each AI character can be sped up or slowed down independently — 50% to 200% in 10% steps. Click the percentage between the +/− buttons to reset to the voice’s default. Some voices struggle below 70% or above 150% — if the audio sounds bad, dial back toward 100%.

Voices

The voice list is your live ElevenLabs library — every voice you’ve added there shows up here automatically. Curated archetypes appear first; the rest of your library follows. Star a voice to favourite it for quick re-use across scenes.

Audio tags (delivery cues)

Inside a dialogue line, square brackets are passed to ElevenLabs v3 as delivery cues. Common ones:

  • [whispers], [shouting], [softly], [chilling], [unsettling]
  • [laughs], [sighs], [crying]
  • [pause] — inline pause within a line (different from the standalone pause marker)

Keyboard shortcuts (during a scene)

Space
Begin scene · pause · resume
← left arrow
Restart the scene from line 1
→ right arrow
Skip the current line
↑ up arrow
Redo the current line (replays the AI line, or resets the listener for your line)
R
Restart the scene from line 1
Esc
Back to setup

Reading prose (off-label use)

Paste a paragraph — or a chapter, or a textbook section — instead of a script. If no characters are detected, the app switches to Reader mode. Pick a voice, hit Start, and you’ve got a mini audiobook.

Use the ↓ Download MP3 button on the Begin or Finished screens to save the audio file.

Recording an audition tape

  1. Turn on Performance mode on the setup page.
  2. Pick a beat between turns — usually Slow (1.5s) or Long (3s) for dramatic delivery.
  3. Drop [pause:Xs] markers in the script for any line that needs a specific beat.
  4. Hit Begin scene, then start your phone camera.
  5. Use ↑ Up arrow to redo any take cleanly.

The screen stays dark with just the orb visible — no reflections off your face on tape.

Saving and the library

Hit Save scene on the setup page to keep a scene in your library. Your scenes are private to your account — no one else can see them.

The Scenespage lists everything you’ve saved. Click a scene to load it, or hover and tap Delete to remove it.

Cached audio

Pre-rendered AI lines are cached in your browser (IndexedDB) so re-runs are free and offline. The cache grows over time. To free space, head to Scenes and tap Clear cached audio at the bottom. Pre-rendering will run again the next time you open a scene.

Troubleshooting

Mic isn't picking up my voice
Make sure you're in Chrome. Allow microphone when prompted. Refresh the page if the prompt was dismissed. Check that the right microphone is selected in your OS settings.
“Mic stopped — tap to resume” appears
The recogniser gave up after many silent restarts. Click the resume button or press ↑ Up to start the line over with a fresh mic session.
Voice not found error
The voice name in the cast list doesn't match anything in your ElevenLabs library. Either rename the voice in ElevenLabs to match, or pick a different one from the dropdown.
Audio cuts off or sounds wrong
Try a different voice or dial the speed back toward 100%. Some voices struggle with extreme speeds.
Script parses badly
Hit AI cleanup to have Claude rewrite the script into the clean format. If it’s a PDF screenshot or photo, use the Photo button instead of pasting.
Scene player feels stuck
Refresh the page — your scene is saved, you won't lose it. If it persists, go to Scenes and tap Clear cached audio, then re-open the scene.

Privacy & data

Your scripts and scene settings are stored in your account on the server. Audio files are pre-rendered and cached locally in your browser via IndexedDB — they don’t leave your device. You can clear the audio cache any time from the Scenes page.

Sign in is via Google OAuth. We store your email, name, and avatar — no passwords. Sign out from the dashboard to end your session.