Last year, we added AI generated narrations to Rest of World stories. It joins a modest set of AI services we are utilizing that enable translation, accessibility, and workflow improvements. Our solid and simple audio player now sits within most new articles. Press play, and you can hear the full story, read aloud in a natural sounding synthetic voice.

This was never meant to be a major product. We just wanted a scalable way to serve readers who prefer listening, need screen-free access, or benefit from audio for accessibility reasons. But the feature quietly succeeded: engagement was strong, and feedback was positive.

Today, we’re releasing the AI Narration plugin as open source. It’s the exact tool we use on our site, now packaged for any WordPress publisher or blogger to install, adapt, and extend. We have benefited from the efforts of other plugin developers, and we now have an opportunity to give back.

https://github.com/row-engineering/ai-narration

To be clear, this is the plugin we actively use on our site restofworld.org. It’s not some lesser version with missing features. As we find bugs or add features this will be the version that sees the changes.

Why We Built It

We already invested in high-quality audio with our Long Reads, narrated by staff, sound-designed, and distributed as a podcast. But we can’t do that for every story.

Text-to-speech (TTS) gave us a path to scale. It also gave us a way to serve readers who told us they wanted more stories to listen to.

In 2022, we tested several TTS  options but found they weren’t good enough. But by late 2023, models had improved dramatically. After testing the quality of Google, Amazon, and OpenAI voices with our team, we found OpenAI’s “Shimmer” struck the best balance: natural cadence, clarity, and speed.

Open AI’s “Shimmer” powers the plugin on our site today, but we’ve added an option for you to choose whatever voice from OpenAI you’d like for yours, straight off the bat. If you don’t want to use OpenAI’s TTS API you can extend the plugin to support a different provider of your preference. 

Why We’re Sharing It

We know small publishers face the same constraints we do: limited developer resources, tight budgets, accessibility gaps. Rather than keep this internal, we’re sharing it.

There are a lot of “maybes” to consider. Maybe it helps someone reach more readers. Maybe someone else improves it and we benefit. Maybe it sparks more open tooling in journalism tech.

Either way, it aligns with our mission and how we work, and now it’s yours too.

Get started here on Github – and if you use it please let us know about your experience.