An open-source project initiated during a research fellowship on Lecture Presentation Understanding at IIIT Hyderabad.
pptGEN is an executable application designed to generate lecture slides within 15 seconds, synchronizing with live speech from the professor. This project utilizes advanced technologies such as Large Language Models (LLMs) to craft coherent multimodal content, automatically assigns appropriate slide layouts, and preserves the overall presentation style across the generated slides.
- Real-time Slide Generation: Produces lecture slides on-the-fly as the speaker presents.
- Modular Pipeline: A lightweight and modular architecture for efficient content generation and slide layout assignment.
- Style Preservation: Ensures that each slide maintains a consistent design and layout.
python-pptx
(for slide generation)Deepgram API
(for real-time speech-to-text transcription)OpenAI Embeddings
(for generating relevant content from transcriptions)Python
,Bash
(core logic and automation)
Follow these steps to set up the project on your local machine:
- Python 3.7 or above
- Windows OS
- Microsoft Office (Atleast PowerPoint)
pip
for package management (>19.x)
- Clone the repository:
git clone https://github.com/your-username/pptGEN-dev.git cd pptGEN-dev
- Make a Python Virtual Environment (Optional)
python3 -m venv pptgen path/to/env/Scripts/Activate.bat
- Install the Dependencies using the requirements.txt file
pip install -r requirements.txt
- Make a .env file and add your API keys (Copy the following for reference)
(BONUS: You can adjust the Deepgram and OpenAI models from transcripter.py and content_generator.py files respectively)
DEEPGRAM_API_KEY=<insert-your-deepgram-key-here> OPENAI_API_KEY=<insert-your-api-key-here>
- Run the following script in Powershell
[] Denotes optional argument
.\run.ps1 -slide <slide-number> [-topic <topic-name>]
- WOHOO! YOU ARE ALL SET! Get creative and generate your presentations!
We welcome contributions from the community to help improve pptGEN! Here’s how you can get involved:
-
Fork the repository:
- Click the 'Fork' button at the top-right corner of this repository's page.
- Clone your forked repository locally:
git clone https://github.com/your-username/pptGEN.git
-
Create a new branch:
- Use a descriptive name for your branch that summarizes the changes you plan to make:
git checkout -b feature/your-feature-name
- Use a descriptive name for your branch that summarizes the changes you plan to make:
-
Make changes:
- Implement your feature or fix the bug. Make sure your code is clean and adheres to the project style guide.
-
Commit and push:
- After testing your changes, commit them:
git commit -m "Descriptive message about your changes"
- Push your branch to your forked repository:
git push origin feature/your-feature-name
- After testing your changes, commit them:
-
Open a pull request:
- Go to the original repository and click 'New Pull Request.' Submit a pull request with a detailed description of your changes. We’ll review and provide feedback.
We aim to create a welcoming and inclusive community. To that end, please:
- Be respectful and considerate in all discussions.
- Avoid offensive language, harassment, or discrimination based on gender, race, or background.
- Provide constructive feedback in code reviews and avoid personal attacks.
- Respect differing viewpoints and understand that collaboration is key to project success.
By contributing, you agree to follow these guidelines and foster a positive environment for all contributors.
This project is licensed under the GNU Affero General Public License v3.0. The full license text is in the LICENSE file.
The AGPLv3 license ensures that any modifications to this project deployed in a network environment must be shared with the community under the same license, fostering collaboration and improvement across the ecosystem.