Voice Chat to Slides: My New AI-Powered Workflow

Here’s my new workflow for creating slide decks:

  1. ChatGPT interviews me and creates Markdown slides.
  2. I use Marp to convert Markdown to slides.
  3. LLMs create supporting images.
  4. I deploy on GitHub Pages.

… and here are 2 decks created this way.

  1. Visualizing LLM Hallucinations
  2. LLMs in Education

Let’s look at how I built the second example, step by step.

ChatGPT interviews me and creates Markdown slides

While walking 75 minutes from home to IIT Madras to deliver this talk, I had ChatGPT interview me in standard voice mode.

  • Why an interview? It’s easier when someone asks questions.
  • Why voice? It’s hard to type while walking. Otherwise, I prefer typing.
  • Why not advanced voice mode? I want to use a reasoning model like O3 Mini High for better responses, not the GPT-4o-realtime model that advanced voice mode uses.

Here’s the conversation I had with ChatGPT. I began by speaking (not typing):

I want to create an insightful deck in Markdown on how I have been using LLMs in education.The audience will be technologists and educators. The slide contents must have information that is useful and surprising to them.

The slides are formatted in Markdown with each slide title being a level 2 Markdown header and the contents of the slides being crisp bullet points that support the title. The titles are McKinsey style action titles. Just by reading the titles, the audience will understand the message that I am trying to convey.

In this conversation, I’d like you to interview me, asking me questions one by one, and taking my inputs to craft this presentation. I’d also like you to review the inputs and the slide content you create to make sure that it is insightful, useful, non-obvious, and very clear and simple for the audience. Interact with me to improve the deck.

Let’s begin.

(Unsurprisingly, I talk a lot more than I type.)

There were 3 kinds of interactions I had with ChatGPT:

  1. Content. I explained each slide. For example:
  • Yeah, let’s move on to the next topic, which is where we had the students learn prompt engineering as part of the course. One of the questions was convincing an LLM to say yes, even though …
  1. Correction. After ChatGPT read aloud a slide, I corrected it. For example:
  • Content-wise, it’s spot-on. Style-wise, it’s almost spot-on. It’s far more verbose. Can you retain the exact same style, but shorten the number of words considerably?
  • These feel generic. I’d like stuff that comes across as insightful, non-obvious, and specific.
  1. Collation. I had ChatGPT put slides in order. For example:
  • Put all the slides together in sequence. Make sure you don’t miss anything.
  • Move the opening questions as the second slide. Move the final takeaways, which is currently the last slide, to just before the final set of questions.

At the end of the interview, I had all the content for the slides.

Marp converts Markdown to slides

I use Marp, a JavaScript tool that turns Markdown into slides

  • Why Markdown? It’s natural for programmers and LLMs. ChatGPT renders rich text in Markdown.
  • Why not RevealJS? Despite a Markdown plugin, RevealJS is built for HTML. Marp is built for Markdown.

I created a bookmarklet that copies text as Markdown. Using this, I converted the ChatGPT slide transcript to Markdown, saving it as README.md.

The Marp for VS Code plugin makes it easy to preview the slides when you adding YAML frontmatter like this:

---
marp: true
title: Visualizing LLM Hallucinations
url: https://sanand0.github.io/llmhallucinations/
theme: gaia
backgroundColor: white
---

LLMs create supporting images

I use ChatGPT or Gemini to create images that support the slides. For example this slide includes an image of a robot psychologist generated by Gemini’s ImageGen 3:

Robopsychologist

Today, with native image generation in Gemini 2.0 Flash and GPT 4o, I’d likely use those. They have much better character control.

Deploying on GitHub Pages

I use GitHub Actions to render the slides and deploy them on GitHub Pages. Here’s what the key steps look like:

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Generate HTML with Marp
        run: npx -y @marp-team/marp-cli@latest README.md -o index.html

      - name: Setup GitHub Pages
        uses: actions/configure-pages@v4

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: '.'

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

What’s next?

I plan to make 3 improvements to this workflow:

  1. Adding images directly with voice prompts.
  2. Adding diagrams (e.g., Mermaid).
  3. Creating a custom GPT that auto-deploys slides on GitHub when I say “Publish these slides.”

If both of these work, I’ll be able to create and publish an entire slide deck just by rambling to ChatGPT for an hour.

Leave a Comment

Your email address will not be published. Required fields are marked *