Dashboard overview with quick stats, credits, and one-click access to all key settings
Text to speech for WordPress with natural ElevenLabs AI voices, an accessible audio player, and 10,000 free credits to start.
Add Text to Speech to WordPress in Seconds
Text to Speech – TTSWP is built for sites that need more than a basic read-aloud button. One plugin covers ElevenLabs voices, speech-to-text, voice cloning, members-only audio, visitor-triggered generation with a daily credit cap, and white-label reselling for agencies.
The plugin is published and operated by Norse Digital Group LLC, a Wyoming-registered company (Sheridan, WY, USA). Engineering work is performed by Mementor Webdesign & Digitalt Markedsføringsbyrå AS, our Norwegian development partner.
The plugin uses ElevenLabs to generate lifelike speech that sounds human, warm and clear, and gives visitors another way to consume your content. PRO and Agency add Speech-to-Text, useful for transcripts, captions, or turning podcasts and video into readable text.
Key Benefits
No ElevenLabs account or API key needed. Install, connect your site, and start converting text to speech
Natural male, female and multilingual ElevenLabs voices, in a range of tones and styles to match your brand
Automatic, mobile-friendly audio player that fits any screen size, with sensible defaults out of the box
Accessible player with ARIA labels, keyboard support and colour-contrast options, built to support your WCAG work
Tested with Elementor, Gutenberg, Divi, Avada, Themify and other popular builders, and designed to fit alongside common caching, translation and SEO plugins
10,000 free text-to-speech characters when you connect your site, so you can try it at no cost
Lazy-loaded and minified assets, loaded only on pages that actually have audio, to keep page weight low
AudioObject structured data on every post with audio, so search engines can read the file, its title and its duration (PRO)
Speech-to-Text transcription to create written transcripts from your audio content (PRO)
Features
Free Features
10,000 free characters to convert text to audio. Enough to get started without paying
Natural male and female voices in multiple languages for a professional listening experience
Automatic player for posts, pages, and WooCommerce products with no manual setup needed
Flexible player placement – before title, after title, after content, before excerpt, or after excerpt
RTL support for languages like Arabic, Hebrew, and Persian so the player displays correctly in right-to-left layouts
Quick start. Activate, connect, and the audio player is ready
Mobile-first player with speed control and download so visitors can listen anywhere
Regenerate audio for a post in one click after you edit it, from the post list or the editor
My Content & Audio page, a single hub to generate, regenerate, download, and delete audio for any post, page, or WooCommerce product, one at a time or in bulk, with live credit balance and per-language support
Statistics dashboard to track how many visitors listen to your content
Shortcode and block support for custom player placement anywhere on your site
Content filtering with CSS selectors or no-audio class to exclude specific sections from narration
Built for caching and performance plugins like WP Rocket, LiteSpeed Cache, and W3 Total Cache
Multisite support for managing text-to-speech across multiple WordPress sites from one network
Sticky Footer Player. A persistent audio player bar pinned to the bottom of the page. Visitors can keep reading while listening. Includes play, pause, seek, volume, speed, and close controls
Waveform Progress Bar. A visual waveform replaces the standard progress bar. Each post gets a unique pattern. Shows real-time playback progress with accent-colored bars
Background Opacity. Adjust the sticky footer’s background transparency so page content shows through while the player stays accessible
PRO & Agency Features
600+ voices across 70+ languages to match your audience worldwide, on credit-inclusive plans
Premium 44.1 kHz (192 kbps) audio quality for studio-grade narration
ElevenLabs v2 and Eleven v3 models for the latest and most natural-sounding voice technology
Speech-to-Text transcription to create written transcripts from audio
Voice cloning with ElevenLabs Voice ID to create a custom brand voice
Word replacement and pronunciation correction for names, abbreviations, and technical terms
SSML support for fine-tuned control over speech output
Custom pauses to add natural breaks between sections, headings, or paragraphs
AudioObject schema for SEO. Structured data that helps search engines index your audio content
Custom intro and outro to add branding or disclaimers to every audio file
WPML, GTranslate, and Weglot multi-language voice mapping to assign different voices per language
Amazon S3 media offload to reduce server load and speed up audio delivery
Audio statistics per post: play clicks, completions, listening time and unique sessions, recorded on your own site
White-label mode (Agency plan) to remove plugin branding from the backend and the text-to-speech player
White-label the player info tooltip with your own attribution text or agency branding
Resell or share our Text-to-Speech plugin (Agency plan) under your own brand and pricing. Offer text-to-speech as a service to your clients and create a recurring revenue stream
Credit Allocation per Site (Agency plan). Distribute credits across client sites from one account. Control usage per site to manage costs and ensure fair allocation
Priority support with faster response times from the development team
Custom audio files. Upload your own audio files.
Player Visibility. Show the audio player to everyone, logged-in users only, or selected user roles. Works with membership plugins such as MemberPress, so you can offer audio as a members-only perk across your whole site with no per-post setup
Auto-generate on first visit. Let your readers decide what is worth narrating. Once a post has been read a few times, its audio is queued in the background, so the posts nobody opens never cost you a credit. Ideal for large archives. You set the visit threshold and a daily credit cap, and pages stay fast because audio is never created while a visitor is waiting
Generate on click. Show a “Listen to the content” button on posts without audio, so a reader never lands on a page with nothing to play. A click generates the audio on demand and the player appears when it is ready. The button follows your Player Visibility setting, which makes it perfect for paid audio subscriptions, and it shares the daily credit cap with Generate on first visit
How It Works
Install and activate the plugin from your WordPress dashboard
Click “Connect Site” on the Overview page. Your 10,000 welcome credits are added at this point
Open a post and click Generate in the Text to Speech box, or turn on automatic generation on publish (PRO)
A text-to-speech audio player appears on the page with no extra configuration
Visitors can play, pause, adjust speed, or download the audio file
The plugin generates speech in 70+ languages, and its admin screens are translated by the WordPress community at translate.wordpress.org. It works alongside WPML, Polylang, TranslatePress, GTranslate and Weglot, with per-language voice mapping on PRO.
Go to Plugins, then Add New, in your WordPress admin
Search for “Text to Speech – TTSWP”
Click Install Now and then Activate
Click “Connect Site” on the Overview page to link your site to TTSWP
You receive 10,000 free welcome credits instantly
Optional: connect your own ElevenLabs API key for 10,000 extra monthly credits, subject to ElevenLabs’ plan terms. Their free plan does not include a commercial licence, so a commercial site needs a paid ElevenLabs plan to use it this way. Their free plan also requires attribution to ElevenLabs on published content
Optional: upgrade to Pro or Agency for more credits and features
Quick Start Guide
Overview – see your plan, credits, and setup checklist at a glance
Voices – pick a default voice and language for your audio
Player – customize colors, size, position, and player label
Content – choose which post types generate audio and set content rules
My Content & Audio – browse, search, and manage all generated audio files
Statistics – track play counts and listener engagement
Shortcode Generator – create custom player embeds for any content
Bulk generation – select multiple posts on My Content & Audio and generate their audio in one run
External Services
ElevenLabs API
Purpose: Converts your text into natural-sounding speech. Speech generation is routed through the TTSWP service below, which calls ElevenLabs on your behalf, so your text never goes to ElevenLabs straight from your site. If you connect your own ElevenLabs key, that key is used for the call instead of ours, and the plugin also contacts ElevenLabs directly from your site to read that account’s own usage and subscription status for display in the admin.
Data sent: The post text you chose to convert, the selected voice and model, the language code, and for Speech-to-Text the audio file to transcribe. On the direct calls described above, your own ElevenLabs API key, sent as a request header so ElevenLabs can identify the account.
When: On manual or automatic audio generation, on Speech-to-Text transcription, and whenever a plugin admin screen shows your ElevenLabs account status, usage or remaining characters.
Storage: MP3 files saved on your own server, or on TTSWP cloud storage (Amazon S3 and CloudFront) on plans that include it.
Limits: The free plan includes 10,000 one-time welcome credits. Paid plans either run on your own ElevenLabs key or include a monthly TTSWP credit allowance. Current plans and prices are at ttswp.com/pricing.
Terms: https://elevenlabs.io/terms-of-use
Privacy: https://elevenlabs.io/privacy-policy
TTSWP Cloud Platform (Norse Digital Group LLC)
Purpose: Generates your audio and handles checkout, subscriptions, and licence validation. All speech generation is routed through this service, which calls ElevenLabs on your behalf.
Data sent: The post text you choose to convert, the selected voice and model, your site’s connection token, and the plugin version. Your own ElevenLabs API key, if you connect one, which the service stores encrypted and uses to call ElevenLabs on your behalf. With Remote Debug Logging enabled, diagnostic events, and with “Include Content Samples” also enabled, text samples from the post being generated. For Speech-to-Text, the address of the audio file to transcribe.
When: When you generate audio or request a transcription, when visitor-triggered generation runs, and when the plugin refreshes your plan and credit balance.
Terms: https://ttswp.com/terms
Privacy: https://ttswp.com/docs/trust/privacy
Amazon Web Services (S3 and CloudFront)
Purpose: Stores and delivers generated audio files for plans that use TTSWP cloud storage. Audio is uploaded to Amazon S3 and served through the Amazon CloudFront CDN.
Data sent: The generated MP3 file. When a visitor plays that audio, their browser requests the file from CloudFront, so their IP address and user agent are visible to AWS in the same way as any CDN-hosted file.
When: On audio generation (upload) and on every playback of cloud-hosted audio (delivery).
Note: Free and Pro Lite plans store audio on your own server instead, so no audio is sent to AWS.
Privacy: https://aws.amazon.com/privacy/
Translations
We’re looking for contributors to help translate this plugin. If you can help, we’d love to hear from you. Contact us and we’ll guide you through the process.
Privacy
No usage analytics or telemetry
This plugin sends no usage data, analytics or telemetry to the plugin author.
Your ElevenLabs API key
If you connect your own ElevenLabs key, it is stored in two places. An encrypted copy stays in your site’s own database, and a copy is held encrypted by the TTSWP service, which uses it server-side to call ElevenLabs when your plan runs on your own key, or as a fallback when your TTSWP credits run out. A key you had already saved in the plugin is sent to the service during Connect Site, directly from your server to ours rather than through your browser, and the local copy is kept, not deleted. Remove the key from your TTSWP account to stop the service using it, and clear it in the plugin settings to remove the local copy.
Player statistics stay on your site
The Player Statistics feature records how your audio is used: play clicks, completions, listening time, and a randomly generated id used to tell one listening session from another. If the visitor is logged in, their WordPress user ID is stored with the event. Those rows are written to tables in your own WordPress database, are shown only to you in the plugin’s Statistics screen, and are never transmitted anywhere. No IP address is stored: a visitor’s address is hashed into a short-lived key purely to rate-limit the endpoint, and it expires after a minute. Statistics are on by default and can be switched off under Settings, which stops collection immediately.
What leaves your site
Every external service the plugin uses, what is sent to each one and when, is listed under External Services above. In short: your text goes out when you generate audio, visitor activity can trigger that generation if you enable the PRO on-visit or on-click features, and cloud-hosted audio is delivered to visitors from Amazon CloudFront. CloudFront access logging is switched off on our distribution, so we keep no log of who played what.
Uninstalling the plugin removes its options, database tables and post meta when full data removal is enabled under Advanced settings. That clears the local copy of your ElevenLabs key, but not the copy held by the TTSWP service: remove that from your TTSWP account if you want it gone.
We never collect:
Personal information about your visitors
The content of posts you have not chosen to convert