How to Add Text to Speech to WordPress Posts (Free Guide)

To add text to speech to WordPress, install a text to speech plugin, choose which post types should get a player, and style the Listen button so it fits your theme. With the free AtlasVoice plugin (listed on WordPress.org as Text To Speech TTS Accessibility (opens in a new tab)) that takes a few minutes and needs no account, no registration and no API key.
This guide walks through each step, explains the two ways a WordPress site can produce spoken audio, and lists the settings worth checking before your visitors press play.
Two ways to add audio to WordPress posts
Before you install anything, it helps to know that "text to speech" on a website usually means one of two things.
Browser voices. The visitor's own browser reads the page aloud using its built-in speech engine (the Web Speech API's
speechSynthesis). Nothing is generated on a server, so it is free and unlimited, and it starts instantly. The catch: the voice depends on the visitor's browser and operating system, so it sounds different on different devices.Generated audio files. A speech service turns your text into an MP3 once, and the file is stored on your site. Every visitor hears the same voice on every device, and the file can be played, cached and even downloaded like any other audio. It usually has a monthly allowance or a cost per character.
Browser voice | Generated MP3 | |
|---|---|---|
Cost | Free, unlimited | Allowance or per-character cost |
Same voice everywhere | No, depends on device | Yes |
Setup | None | Connect a speech service |
Audio file on your site | No | Yes |
The free AtlasVoice text to speech WordPress plugin starts with browser voices, so you can have a working Listen button today, and it lets you move to generated MP3 audio later without rebuilding anything.
Step 1: Install and activate the plugin
In your WordPress admin, go to Plugins > Add New.
Search for Text To Speech TTS Accessibility.
Click Install Now, then Activate.
You can also download the ZIP from WordPress.org and upload it under Plugins > Add New > Upload Plugin. Once it is active, you will find a new AtlasVoice menu in the admin sidebar. The player starts working straight away on the post types you select, using the browser's speech engine.
Step 2: Choose where the Listen button appears
Open AtlasVoice > Settings and find Allow Listening For Post Type. Pick the content that should get a player: blog posts, pages, WooCommerce products, or custom post types created with tools like Advanced Custom Fields, Custom Post Type UI or Toolset Types.
On the same screen you can choose which post statuses are included and set Content Selection Rules that control which part of the page is read aloud. Before speaking, the plugin also strips out URLs, shortcodes, HTML tags and special characters, so listeners hear your writing rather than your markup.
Step 3: Pick a voice and language
Go to Listening to choose the default language and voice. For browser voices you can also adjust speed, pitch and volume.
Keep in mind that browser voices vary. Microsoft Edge offers every voice installed on the system, desktop Chrome covers 18 or more languages, and mobile browsers usually offer fewer. Always test on a phone as well as your desktop, because that is where many readers will press play.
Step 4: Customize the button and player
Under Customization you can change the button's color, width, border radius, hover effect and text labels, and preview the result in real time. You can also:
Place the Listen button before or after your content.
Let the player follow readers on long posts, docking to the bottom (full width, right or left) or as a sticky bar at the top once they scroll past it. You can turn docking off.
Add your own custom CSS for a pixel-perfect match with your theme.
Add and style the player from the block editor with the Customize Button block.
If you want readers to follow along, open the Highlight tab. Read-along highlighting marks text as it is spoken, sentence by sentence (and word by word with supported voices), and visitors can select a passage to hear just that part. It is off by default.
Step 5: Place the player anywhere with the [atlasvoice] shortcode
The automatic button covers most sites, but the shortcode gives you full control over placement in posts, pages and widgets:
[atlasvoice]adds the basic player.[atlasvoice listen_text="Listen" pause_text="Pause" resume_text="Resume" replay_text="Replay"]changes the button text.[atlasvoice text_to_read="Welcome to our website."]reads a custom sentence.[atlasvoice lang="en-GB" voice="Google UK English"]sets the language and voice for that player.[atlasvoice id="42"]reads a specific post by its ID.[atlasvoice]This content will be read aloud.[/atlasvoice]reads only the text you wrap.
The older [tta_listen_btn] shortcode still works, so existing pages keep their players.
Optional: a natural voice saved as an MP3
If you want every visitor to hear the same clear voice, AtlasVoice 2.4 (currently in public beta (opens in a new tab)) adds AtlasVoice TTS to the free plugin. Here is how it works:
You connect it from the Listening screen. Connecting asks for an email address and your consent before anything is sent.
It is free for 100,000 characters a month.
The first time a post is played, audio starts within a few seconds while the rest is prepared. The result is saved as an MP3 on your own site, and later plays use that file, so they use no characters.
A new audio box in the post editor lets you listen to, replace or delete a post's audio.
If the allowance runs out, posts are read with the browser voice instead, so the button never goes silent.
As with any beta, try it on a staging site first and keep a backup.
Fix pronunciation and check your results
Speech engines stumble on abbreviations, brand names and numbers. The Pronunciation page (listed as Aliases in the AtlasVoice menu) lets you write a word as it appears and how it should be spoken, then test it with your own text. Number rules let you write one example, such as "5k" read as "5 thousand", and apply it to every number written the same way.
Once the player is live, the built-in analytics show how visitors use it, including play counts and pause events, so you can see which posts people actually listen to.
When AtlasVoice Pro makes sense
The free plugin works fully on its own. Sites that need more voices, more languages or no limits can add AtlasVoice Pro (opens in a new tab), which includes:
No monthly limit on the natural voice.
AtlasVoice Cloud: 380 voices in 47 languages, included with the license, with no API key to set up.
Bulk MP3 generation for all your posts, with Google Cloud Storage backup.
Google Cloud, ElevenLabs and OpenAI voices. These use your own API key with that provider, and the provider bills you for usage.
Support for WPML, Polylang, GTranslate and TranslatePress, plus advanced listening analytics.
Not on WordPress? The same voices are available to any website or app through the AtlasVoice text to speech API (opens in a new tab). And if you are adding audio for accessibility reasons, read what audio articles can and cannot do for accessibility (opens in a new tab).
Next step
Install AtlasVoice from WordPress.org (opens in a new tab), select your post types, and open one of your posts on your phone. If the Listen button is there and the voice sounds right, you are done. It is the quickest way to let every visitor listen to your posts.

