Inspiration

Writing basic presentations for history is easy, but at times time consuming. This is designed to create rough drafts for these kinds of presentations

What it does

A UI pops up with a simple button. Click it, and the program starts. The user can speak into their microphone - slides are divided based on the word "splitter" , titles are formed using the word "header", and new lines are formed using the word "stopping". Then the text which is just one large string, is split into a list of strings which make up the titles and body texts. After the user signs in and grants access permissions, using the Google Slides/Google Drive API, each string from the list of strings is put into a text box on Google slides, formatted into either a title or body text. Using a one-slide slideshow with a predetermined theme, the program creates a copy and creates a blank page for every slide required. From there, two new text boxes are created (main text/body text), and the header/body text is inputted accordingly.

How I built it

This program was built in Python using the PyCharm IDE. To create the program, we used the SpeechRecognition, Pyaudio, and Google Slides/Google Drive APIs. To build the program interface, we used the Kivy GUI.

Challenges I ran into

There was a bit of an issue with accessing the Google Slides API due to an issue with the 'credits.json' file (an incorrect URI link was specified). To solve this issue, on the Google Cloud Developers page, instead of specifying the API usage as "web development", it was instead set to "desktop", which allowed the user to bypass the information for the URI redirect. In addition, There was very little documentation on creating google slideshow presentations based on a certain theme, so our solution to this problem was to create a new copy of a public slideshow with a pre-determined theme. Another issue that arose was getting the object ID of each text box from a slide with a pre-determined layout, which was nested in a large list of nested dictionaries within dictionaries. To solve this issue, we decided to create a blank slide every time the user prompted for a new slide and manually create text boxes at the correct position.

Built With

  • kivy
  • kivymd
  • pycharm
  • python
  • speechrecognition
  • vscode
Share this project:

Updates