A comprehensive AI-powered public speaking analysis platform that provides real-time feedback on your presentation skills, body language, and vocal delivery.
- Real-time video recording with camera and microphone
- Instant AI-powered feedback on your speaking performance
- Live interview simulation with AI-generated questions
- Real-time audio responses using text-to-speech
- Posture & Physical Presence: Analyzes stance, gestures, and body language
- Eye Contact: Evaluates connection with audience and gaze patterns
- Vocal Delivery: Assesses pace, volume, clarity, and tonal variation
- Content & Structure: Reviews message clarity and logical flow
- Nervousness/Comfort: Identifies stress indicators and comfort levels
- Upload pre-recorded videos (.mov, .mp4)
- Detailed analysis with timestamped feedback
- Actionable recommendations for improvement
- Professional assessment summary
- Clean, responsive interface built with React and TypeScript
- Real-time video preview with mirror effect
- Progress indicators and status updates
- Tabbed navigation for different features
- React 19 with TypeScript
- Vite for fast development and building
- React Router for navigation
- Three.js with React Three Fiber for 3D visualizations
- Socket.IO for real-time communication
- Flask (Python) web server
- Google Gemini AI for video analysis and interview questions
- FFmpeg for video/audio processing
- Flask-SocketIO for WebSocket support
- Flask-CORS for cross-origin requests
- Google Gemini 2.0 Flash for video analysis
- Google Gemini 2.5 Flash for interview question generation
- Google Gemini TTS for text-to-speech responses
- Custom prompts for specialized public speaking evaluation
- Node.js (v18 or higher)
- Python 3.10+
- FFmpeg installed on your system
- Google Gemini API key
-
Clone the repository
git clone https://github.com/yourusername/speakcheck.git cd speakcheck -
Install frontend dependencies
npm install
-
Install backend dependencies
cd backend pip install flask flask-cors flask-socketio google-genai ffmpeg-python -
Set up environment variables Create a
.envfile in the backend directory:GEMINI_API_KEY=your_gemini_api_key_here
-
Start the development servers
Backend (Terminal 1):
cd backend python app.pyThe Flask server will run on
http://127.0.0.1:5000Frontend (Terminal 2):
npm run dev
The React app will run on
http://localhost:5173
- Navigate to the "live" tab
- Grant camera and microphone permissions
- Click "Record" to start recording your speech
- Click "Stop" when finished
- Click "Upload" to send for analysis
- Click "End Live" to get comprehensive feedback
- Navigate to the "upload" tab
- Click or drag & drop your video file (.mov, .mp4)
- Click "Upload" to start analysis
- Wait for AI processing to complete
- Review detailed feedback with timestamps
- Navigate to the "pitch" tab
- Record your pitch or presentation
- Upload for specialized business pitch analysis
- Receive targeted feedback for investor presentations
POST /upload- Upload video for analysisPOST /uploadInterview- Upload interview video with AI questionsGET /feedback- Retrieve analysis resultsGET /question- Check for new AI questionsGET /audio- Stream AI-generated audio responsesPOST /check/<filename>- Process specific video file
speakcheck/
├── backend/ # Flask server
│ ├── app.py # Main Flask application
│ ├── check.py # Video analysis logic
│ ├── interview.py # Interview question generation
│ └── feedback.json # Analysis results
├── src/
│ ├── components/ # Reusable React components
│ │ ├── fileUploader.tsx
│ │ ├── videoDisplay.tsx
│ │ └── dynamicAvatar/
│ ├── pages/ # Main application pages
│ │ ├── home.tsx # Main dashboard
│ │ ├── liveNew.tsx # Live recording interface
│ │ ├── recordSpeech.tsx # Pitch recording
│ │ └── interReview.tsx # Interview review
│ └── types/ # TypeScript type definitions
├── uploads/ # Uploaded video files
└── public/ # Static assets
The application uses custom CSS classes. Main styling can be found in:
src/App.css- Global stylessrc/index.css- Base styles- Component-specific styles in each component
Modify the analysis prompts in:
backend/check.py- Main analysis promptbackend/interview.py- Interview question generation
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for powerful video analysis capabilities
- React and Vite teams for excellent development tools
- FFmpeg for robust video processing
- The open-source community for inspiration and libraries
Made with ❤️ for better public speaking