talk-generator

Talk Powerpoint Generator

CircleCI codecov License

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.

Demo

Ty out this generator on our online platform: talkgenerator.com.

Example

Automatically Generated

Easy Install and Run

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

Run arguments

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

Program structure

See the wiki to know more about the inner implementation.

Tests

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.

Credits

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"
}

License

MIT License. Copyright (c) 2018-2020 Kory Mathewson and Thomas Winters