This program automatically generates PowerPoints about any topic. These presentation slide decks can be used by improvisers for the improvisational comedy format "Improvised TED talk" or "Powerpoint Karaoke". In such games, the actors have to present an unseen presentation slide deck, but pretend to be an expert and explain "their" slide show choices.
Ty out this generator on our online platform: talkgenerator.com.
Our program relies on certain APIs that require authentication in order to use it.
Create a file named .env
(don't forget the period) in your project directory, and fill this with the correct API keys as described on our wiki page about this.
# Make a new Python 3 virtual environment
python3 -m venv venv;
# Activate the virtual environment
source venv/bin/activate;
# Upgrade pip and install requirements
pip install --upgrade pip setuptools;
python3 -m pip install -r requirements.txt;
# Download NLTK dependencies
python run_nltk_download.py;
# Install the Talk Generator
pip install -e .;
# Generate a 10 slide talk with topic peanuts
talkgenerator --topic "peanuts" --num_slides 10
Argument | Description |
---|---|
topic |
The topic of the generator. This works best if it is a common, well-known noun. Use comma-separated words to generate a slide deck about multiple topics |
slides |
The number of slides in the generated presentation (default: 10) |
schema |
The presentation schema to use when generating the presentation. Currently, only two modes are implemented, being default and test (for testing during development) |
title |
Title of the presentation. Either topic or this one should to be set in order to generate a slide deck (just setting topic is usually more fun though) |
presenter |
The name that will be present on the first slide. Leave blank for an automatically generated name |
output_folder |
The folder to output the generated presentations (default: ./output/ ) |
save_ppt |
If this flag is true(default), the generated powerpoint will be saved on the computer in the output_folder |
open_ppt |
If this flag is true (default), the generated powerpoint will automatically open after generating |
parallel |
If this flag is true (default), the generator will generate all slides in parallel |
See the wiki to know more about the inner implementation.
Test files are tests/*.py
, prefixed with test_
. Test files use the unittest
module.
They can easily be run all together when using PyCharm by right clicking on talk-generator
and pressing Run 'Unittests in talk-generator'
coverage run -m pytest; coverage html
Test coverage is automatically handled by codecov
. Tests are automatically run with CircleCI based on the .yml
file in the .circleci
directory.
This generator is made by Thomas Winters and Kory Mathewson, with contributions from Shaun Farrugia and Julian Faid.
If you would like to refer to this project in academic work, please cite the following paper:
Winters T., Mathewson K.W. (2019) Automatically Generating Engaging Presentation Slide Decks. In: Ekárt A., Liapis A., Castro Pena M. (eds) Computational Intelligence in Music, Sound, Art and Design. EvoMUSART 2019. Lecture Notes in Computer Science, vol 11453. Springer, Cham
@InProceedings{winters2019tedric,
author="Winters, Thomas
and Mathewson, Kory W.",
editor="Ek{\'a}rt, Anik{\'o}
and Liapis, Antonios
and Castro Pena, Mar{\'i}a Luz",
title="Automatically Generating Engaging Presentation Slide Decks",
booktitle="Computational Intelligence in Music, Sound, Art and Design",
year="2019",
publisher="Springer International Publishing",
address="Cham",
pages="127--141",
isbn="978-3-030-16667-0"
}
MIT License. Copyright (c) 2018-2020 Kory Mathewson and Thomas Winters