Inspiration

Rehearsify was born from a personal need: my wife, like many actors, often needed to rehearse her lines alone. Traditional methods involve recording lines or relying on a patient partner, which isn't always ideal or available. The core inspiration was to create a digital, solo rehearsal companion that could play other characters' lines and listen to the actor's performance, making self-practice more effective and accessible.

What it does

Rehearsify is a professional script rehearsal application designed for solo actors. It allows users to:

  • Upload Scripts: Supports various file formats including TXT, DOCX, PDF, and RTF, with intelligent text extraction and script classification.
  • Character Selection: Users can select their character from the parsed script and customize individual voice settings (speed, pitch, volume) for other characters.
  • Guided Rehearsal: The app reads lines for other characters using text-to-speech, and listens for the user's lines via speech recognition.
  • Accuracy Feedback: Provides real-time accuracy scoring (Exact, Semantic, Loose match) to help users improve their delivery.
  • Progress Tracking: Saves rehearsal progress, including last practiced line and accuracy scores, to allow seamless continuation.
  • Multi-language Support: The application UI and script parsing/speech features support multiple languages, including English and Turkish.

How we built it

Rehearsify is built as a modern web application using a combination of robust frontend and backend technologies:

  • Frontend: Developed with React and TypeScript for a dynamic and type-safe user interface.
  • Styling: Utilizes Tailwind CSS for rapid and responsive UI development.
  • Backend & Database: Powered by Supabase, providing authentication, a PostgreSQL database, and API services. This handles user accounts, script storage, character data, scene data, and rehearsal session tracking.
  • Script Processing: Custom TypeScript utilities (FileExtractor, ScriptClassifier, scriptParser) are at the heart of converting raw script files into a structured, usable format, identifying characters, acts, and scenes.
  • Speech Functionality: Leverages the Web Speech API (SpeechSynthesis and SpeechRecognition) via React hooks for character voice playback and user input processing.

Challenges we ran into

  • Robust Script Parsing: Accurately identifying characters, dialogue, and stage directions across varied script formats (e.g., standard play scripts, screenplays, even unstructured text) proved complex. Crafting flexible and reliable regex patterns was a significant hurdle.
  • Web Speech API Nuances: Ensuring consistent performance and compatibility of Speech Recognition and Speech Synthesis across different browsers and devices presented challenges, requiring careful error handling and fallback mechanisms.
  • Real-time Interaction Flow: Synchronizing the text-to-speech output, user's speech input, and UI updates in a smooth, intuitive rehearsal flow required meticulous state management and timing adjustments within the PracticeSession component.
  • Database Design Evolution: Adapting the database schema to store complex script data (characters, lines, scenes) efficiently while maintaining relationships and supporting queries was an iterative process.

Accomplishments that we're proud of

  • Successfully built a functional solo rehearsal application from scratch, addressing a real-world need.
  • Implemented intelligent script parsing that can extract meaningful data from various document types, even those with less-than-perfect formatting.
  • Integrated sophisticated speech recognition and text-to-speech capabilities to create an interactive and immersive rehearsal experience.
  • Developed a robust data persistence layer using Supabase, allowing users to save their scripts and track progress across sessions.
  • Achieved multi-language support for both the application interface and the script content, broadening its usability.
  • Created a clean, modern, and responsive user interface using Tailwind CSS.

What we learned

  • Deep Dive into NLP: Gained significant experience in parsing unstructured text and applying natural language processing techniques to identify specific data points in complex documents.
  • Web Speech API Mastery: Understood the intricacies and best practices for working with browser-based speech technologies, including permission handling, voice selection, and managing real-time audio streams.
  • Full-stack Development with Modern Tools: Solidified skills in building a complete application using React, TypeScript, and integrating with a powerful backend-as-a-service like Supabase.
  • Importance of Iterative Design: Recognized that complex features like script parsing benefit greatly from continuous refinement and testing with diverse data sets.
  • User-Centric Development: The entire process was driven by the specific needs of a solo actor, leading to practical and impactful features.

What's next for Rehearsify

  • Advanced Accuracy Metrics: Explore more nuanced feedback mechanisms beyond simple word matching, potentially incorporating prosody, pacing, and emotional tone analysis.
  • AI-Powered Character Voices: Investigate using more advanced AI voice models for other characters, potentially allowing for dynamic voice modulation based on character emotions or scene context.
  • Comprehensive Progress Analytics: Develop dashboards and visualizations to help users track their rehearsal progress over time, identify challenging lines, and celebrate milestones.
  • Community Features: Implement features allowing users to share scripts (publicly or privately), collaborate on rehearsals, or get feedback from peers.
  • Mobile Application: Explore building native iOS/Android applications or a Progressive Web App (PWA) to provide an even more seamless experience on mobile devices.
  • Expanded Script Formatting Support: Continue improving the script parser to handle an even wider array of complex script layouts and specific industry-standard formats.## Inspiration

Built With

  • bolt
Share this project:

Updates

posted an update

Rehearsify Update: A Smoother, Smarter Rehearsal Experience

We’ve been hard at work turning Rehearsify into the ultimate digital rehearsal studio. Here’s a quick, non-technical look at everything that’s new:

What’s New

Smarter Defaults

  • Natural-sounding voice speed
  • Perfect 5-second cue before your line appears
  • Smarter “semantic” accuracy scoring
  • Chat-style practice view right out of the box
  • Auto-advance switched on to keep rehearsals flowing

A Cleaner, Friendlier Interface

  • Settings now live in an easy-to-reach drawer at the bottom
  • A handy cog icon in the header opens settings in one tap
  • AI Voiceover button is brighter, clearer, and works in both light & dark mode
  • Clear microphone-permission tip so you know exactly what to allow

Practice Made Easier

  • Auto⇄Manual toggle now labels itself (“Manual Advance” / “Auto Advance”) so you always know what will happen
  • Better scene navigator and starting-point selector so you can jump right where you left off
  • More helpful titles, labels, and tool-tips throughout the app

Personalization That Sticks

  • Your language, theme (light / dark / system), voice speed, and other settings now stay put—whether you come back tomorrow or sign in on another device
  • Theme switcher actually remembers your choice (goodbye random flashes of blinding white!)

Behind-the-Scenes Magic

  • Faster loading, fewer glitches, and smarter handling of pauses and dramatic timing
  • Improved voice accuracy scoring so you get fairer feedback

Coming Soon

  • More languages
  • Fresh practice templates
  • Extra AI voices for premium users

Give the new version a spin and let us know what you think!

Log in or sign up for Devpost to join the conversation.