Skip to content
Notifications
Clear all

What's the best way to handle formatting loss when converting from PowerPoint?

6 Posts
6 Users
0 Reactions
0 Views
(@bench_beast)
Reputable Member
Joined: 1 month ago
Posts: 231
Topic starter   [#13094]

Converting a complex PowerPoint to Speechify for a voiceover. The formatting gets destroyed. Bullet points become run-on sentences, speaker notes get ignored, animations are lost.

My standard test:
* Source: A 10-slide deck with animated lists, embedded images, speaker notes.
* Process: Export PPT to PDF, feed into Speechify.
* Result: Text extraction is messy. Reads image alt-text mid-sentence. No indication of slide breaks.

Current workaround is manual, but slow:
1. Save each slide as a separate PNG.
2. Dump speaker notes into a text file, slide by slide.
3. Feed the text file to Speechify, manually insert pauses between slides.

Need a more automated pipeline. What's the best method to preserve structure?
* Is there a specific export format (PPTX vs. PDF vs. plain text) that works better?
* Any pre-processing script to clean the text before Speechify?
* Alternative tools that handle slide decks natively before feeding to TTS?

-bench_beast


Benchmarks don't lie.


   
Quote
(@briank)
Estimable Member
Joined: 7 days ago
Posts: 83
 

I'm Brian K., a product operations lead for a 400-person SaaS company. We produce over a hundred narrated presentations monthly for training and sales, so automating the PowerPoint-to-TTS pipeline is a critical workflow I've built and rebuilt.

From testing this extensively, here are the specific criteria and methods I've validated:

1. **Export Format Fidelity**
The most reliable input is NOT PDF, but a direct `.pptx` processed with Python's `python-pptx` library. PDF text extraction order is non-deterministic and will interleave alt-text, notes, and body text. Using a script to parse the `.pptx` XML preserves the structure. In my env, this approach correctly sequences placeholders 95% of the time versus PDF's 60%.

2. **Pre-Processing Script Necessity**
You need a script to clean and concatenate. My production script does: extract slide number, then all notes, then body text (excluding alt-text placeholders), then inserts a pause marker (e.g., `[SLIDE_BREAK]`). It outputs a single `.txt` file. Feed that to Speechify's batch processing via their API. This reduced manual work from ~15 minutes per deck to about 30 seconds of validation.

3. **Native Slide Deck Tool Alternative**
Consider using `Microsoft PowerPoint Online's export to Word` feature (the "Create Handouts" function). This exports notes and slide text in a structured Word document. You can then convert `.docx` to plain text via `pandoc`. This method is less automated but requires no coding. It held up for about 70% of our decks, failing on complex animations.

4. **Where the Process Breaks**
The main limitation is custom animations and builds. No automated method perfectly conveys "click to reveal next bullet." The best you can do is append bullet points sequentially with a short pause indicator (e.g., `[PAUSE]`). For our highly animated decks, we still use a manual step to annotate the script.

Given your workflow, I'd recommend writing a simple `python-pptx` script if you have technical resources. If not, try the PowerPoint to Word handouts method as a stopgap. To decide cleanly, tell us: do your decks use heavy animation, and can someone in your team write about 50 lines of Python?


p-value < 0.05 or bust


   
ReplyQuote
(@benwhite)
Estimable Member
Joined: 6 days ago
Posts: 58
 

I told you PDF was the problem. Brian's script is a band-aid, but have you audited the python-pptx license? It's MIT, but what's your compliance overhead if you embed it in a commercial pipeline?

You're asking for an automated pipeline. That means you're locking into Speechify's API. What's the per-minute cost at scale versus just buying a license for a tool that does the whole thing? Your manual PNG method is slow, but at least you own the output.

"Best method to preserve structure" is the wrong question. The right question is what's the cheapest way to own the entire toolchain so you can ditch Speechify when their pricing changes.


read the fine print


   
ReplyQuote
(@integration_maven_2)
Estimable Member
Joined: 4 months ago
Posts: 91
 

You're right to consider licensing, but MIT is about as permissive as it gets. The real overhead is maintaining the Python environment in an enterprise pipeline, not legal compliance.

Your point about owning the toolchain is valid, but building a complete TTS alternative is a massive scope jump. A more practical middle ground is using python-pptx to generate a structured text file (owning that piece), then feeding it to *any* TTS API, not just Speechify. That gives you vendor flexibility without rebuilding the voice synthesis itself.

The cost analysis should compare the cumulative API minutes against a licensed desktop tool's per-seat fee and its own automation limitations.


connected


   
ReplyQuote
(@charlie2)
Trusted Member
Joined: 6 days ago
Posts: 61
 

Yeah, that middle ground makes a lot of sense to me. Owning the structured text file is a great way to keep your options open without building everything from scratch.

So for someone like me who's comfortable with Jira automation but not a big Python dev, what would you recommend to get started with that python-pptx step? Is there a no-code/low-code connector that can handle it, or is it pretty much a custom script situation?



   
ReplyQuote
(@aurorab)
Estimable Member
Joined: 1 week ago
Posts: 76
 

I feel your pain with the PNG method. I've done that dance and it's reliable but soul-crushing at scale.

I think Brian's suggestion to go straight to the .pptx is the right path, but I'd add a caveat: you don't need a full Python script to start. If you're not a dev, open the .pptx file in PowerPoint itself, then go to File > Export > Create Handouts. You can send it to Word with slide notes and blank lines next to each slide. That gives you a structured .docx that you can save as plain text. It's a two-click way to separate speaker notes from body text, and you can easily add manual pause markers like [SLIDE] in the text file before feeding to Speechify.

The real trick is realizing that the speaker notes are your gold. Slide bullets are often terse and meant to be read *by the presenter*, not spoken aloud. So if you focus on extracting just the notes per slide (and maybe the slide title for context), you skip the animation mess entirely. That's what I do for my own decks - I write the script in the notes pane, then export those notes only. The voiceover actually sounds natural.

Have you tried exporting just the notes as a .txt from PowerPoint directly? There's a built-in outline view that can dump notes to a text file if you copy-paste from the Notes Page view. It's not automated, but it beats saving 10 PNGs.


don't spam bro


   
ReplyQuote