1. Overview
DialogueLab is a browser-based tool that turns your script into synthetic audio, line by line, using Google Cloud Text-to-Speech. It’s designed for playwrights, screenwriters, and storytellers who want to hear their scenes read aloud without casting a full table read.
The main app (on index.html) is split into:
- Left panel: Voice assignments and cast list.
- Right panel: Script editor, playback controls, and settings.
2. Requirements
- A modern browser (Chrome, Edge, Firefox, or Safari).
- An internet connection (for Google Cloud API calls to create the voices).
4. Formatting Your Script
DialogueLab parses your script to detect characters, dialogue, and stage directions.
-
Character names: All caps on their own line.
GREG
Whoa! Nice to hear from you... -
Stage directions: Written on their own line without CHARACTER NAMES above it. These will be read by the NARRATOR.
Jakie turns off the lights. - Blank lines: Used to separate beats or speeches.
When you click “Load Script & Assign Voices”, the app
scans your script to build a list of unique character names plus an
automatic NARRATOR for directions.
5. Loading & Managing Scripts
Use the large Script panel on the right side of the app.
- Paste text: Click inside the editor and paste your script.
- Upload a .txt file: Use the Upload .txt button to load a plain text file.
-
Change font & size: Use the font dropdown and
plus/minus controls to adjust readability (saved with
localStoragefor next time). - Select & copy: The “select all and copy” link selects the entire script and copies it to your clipboard.
- Return to top: Jumps the editor view back to the start of the script.
Hint: On most systems, you can also use
Ctrl+A/Cmd+A then
Ctrl+C/Cmd+C to manually copy the script.
6. Assigning Voices
Complete list of Voices. NOTE: Not all of the voices on the external page are used.
After you click “Load Script & Assign Voices”, the app will show a modal asking whether you want to import a cast list.
-
Import cast list: Paste lines like
GREG: en-US-Wavenet-D
NIDA: en-US-Wavenet-F - Assign manually: For each detected character, pick a voice from the dropdown list (grouped by language and quality).
- NARRATOR: Always available and defaults to a British studio voice; you can change it if you prefer.
Once you confirm voices, DialogueLab builds an internal JSON structure that pairs each line of dialogue or direction with the correct voice.
7. Playback Controls
The lower panel contains playback controls and a timeline slider.
- Play: Starts reading from the current position through to the end.
- Stop: Stops playback but remembers your place.
- Rewind: Returns to the beginning of the script.
- Skip backward/forward: Uses the “lines to jump” input to move by that many dialogue units.
- Go to line: Type a line number and click “Go” to jump to that point in the script.
- Timeline slider: Scrub along the script; the editor scrolls and highlights the corresponding text while staying in sync with playback.
As you listen, DialogueLab automatically scrolls the script editor and highlights the current block of text so you can follow along visually.
8. Saving & Resuming Sessions
DialogueLab uses localStorage to remember some of your
preferences and the last script you used.
- Script text: The last script is stored locally.
- Playback position: The app remembers how many lines you’ve already heard and will offer to restore that position if the script matches.
- Editor font & size: Saved across sessions so the text always appears at your preferred readability.
- Theme (dark/light): Your theme choice is also stored so the app opens the same way next time.
All of this data is stored only in your browser on your machine. It is not synced or uploaded to a server.
9. Privacy & Data
DialogueLab is designed so that your script remains yours.
- The app does not store or transmit your script to any third-party service other than Google Text-to-Speech for audio generation.
- When you close the browser tab, your script and playback state live only in local storage on your device.
For legal details, see the full Terms of Use.
10. Troubleshooting & Tips
Common issues
- Characters not detected: Ensure names are in ALL CAPS on their own line, followed by non-empty dialogue.
- Wrong voice or accent: Adjust the voice assignment in the “Assign Voices” section, then click Update Script to rebuild audio with the new voices.
- Stuck playback: Use Rewind to reset to the start, or refresh the page to reset the app state.
Best practices
- Start with a short scene to test voices and pacing.
- Use consistent character names across your script.
- Use stage directions sparingly for clarity in audio form.
- Try different voice types — neural, studio, and premium voices can give very different textures to the same scene.