VoiceCraft Studio is a modern web application that transforms research papers and PDF documents into engaging podcast-style audio content. Built with React for the frontend and Python Flask for the backend, it offers a seamless experience for converting academic content into accessible audio formats.
You can view the video of the application here.
- 📄 Multiple PDF upload support
- 🎨 Customizable content styles (concise, elaborate, balanced, formal, casual, professional)
- ⏱️ Flexible podcast duration options
- 🔊 Real-time audio preview
- 💾 MP3 download capability
- 📱 Responsive design for all devices
- React
- Material-UI (MUI)
- Eleven Labs API for text-to-speech
- Axios for API calls
- React-Dropzone for file handling
- Python Flask
- PyTesseract for OCR
- PDF2Image for PDF processing
- OpenAI's Mistral model for text processing
- CORS for cross-origin support
Before you begin, ensure you have installed:
- Node.js (v14 or higher)
- Python (v3.8 or higher)
- Tesseract OCR
- Poppler (for PDF processing)
VITE_ELEVEN_LABS_API_KEY=your_eleven_labs_api_key
VITE_ELEVEN_LABS_VOICE_ID=your_voice_id
FLASK_APP=app.py
FLASK_ENV=development
- Clone the repository
git clone <repository-url>
cd voicecraft-studio- Install dependencies
npm install- Start the development server
npm run dev- Navigate to the backend directory
cd backend- Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install Python dependencies
pip install -r requirements.txt- Start the Flask server
python real_server.py- Access the application at
http://localhost:5173(or your Vite default port) - Upload PDF files using the drag-and-drop interface
- Select your desired content style and podcast duration
- Click "Generate Podcast" to process your files
- Use the audio controls to preview the generated content
- Download the final audio as MP3
Processes PDF files and generates podcast script
- Request: Multipart form data
pdfs: PDF files (multiple)contentStyle: Stringduration: String
- Response: JSON with generated script and metadata
Retrieves a previously generated summary
- Parameters: result_id (UUID)
- Response: JSON with summary data
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details
- Eleven Labs for text-to-speech API
- Material-UI for the component library
- Mistral AI for the language model
- All contributors and maintainers
For support, please open an issue in the GitHub repository or contact the maintainers.