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
PracticeSessioncomponent. - 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
Log in or sign up for Devpost to join the conversation.