Add Text to Speech to WordPress in Seconds
Text to Speech - TTSWP turns your written content into natural, human-like audio. It makes your website accessible to everyone. Listeners, people with visual impairments, and those with learning differences all benefit.
The plugin is published and operated by
Norse Digital Group LLC, a Wyoming-registered company (Sheridan, WY, USA). Engineering work is performed by
Mementor Web Design & Digital Marketing Agency AS, our Norwegian development partner.
The plugin uses ElevenLabs to generate lifelike speech that sounds human, warm and clear. No setup, API key, or coding is needed. Install it and start converting your WordPress posts into audio right away.
Text to speech keeps visitors on your page longer and raises engagement. Both of these factors can improve your SEO. The plugin follows WCAG 2.1, WCAG 2.2, and ADA accessibility standards.
PRO and Agency adds Speech-to-Text (STT) features. These are useful for transcription, captions, or converting podcasts and video into readable text.
Key Benefits
- Instant setup with no API keys or external accounts needed. Install and start converting text to speech
- Natural voices powered by ElevenLabs that produce clear, professional narration
- Automatic, mobile-friendly audio player that fits any screen size
- Accessibility ready with ARIA labels and keyboard support for screen readers and assistive devices
- Better engagement and SEO signals as visitors spend more time on your pages
- 10,000 free text-to-speech characters on activation so you can try it at no cost
- Lightweight and built for performance with no impact on page speed or Core Web Vitals
- Speech-to-Text transcription (PRO) to create written transcripts from your audio content
Why Choose This Text to Speech Plugin
Simple and Fast
- No API keys, or coding needed. Install, activate, and your audio player is ready in seconds
- Works with default settings so you can start converting text to speech right away
Natural Voices
- Natural male, female, and multilingual voices that sound clear and professional
- Pick from a wide range of tones and styles to match your brand and audience
Accessibility and Compliance
- Fully compatible with WCAG 2.1 AA and ADA guidelines for web accessibility
- Helps your website meet legal requirements by offering audio versions of written content
Theme and Page Builder Compatibility
- Works with any theme or page builder, including Elementor, Gutenberg, Divi, Visual Composer, and all standard WordPress themes
- No conflicts with popular plugins. Designed to fit smoothly into your existing setup
SEO Optimized
Audio players raise dwell time and send positive accessibility signals. Text to Speech PRO includes AudioObject schema for better search visibility.
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
- Zero-click install. Activate the plugin and your audio player is ready
- Mobile-first player with speed control and download so visitors can listen anywhere
- Accessibility ready with ARIA labels and keyboard control for screen readers and assistive devices
- Audio auto-updates when post content changes. No need to regenerate manually
- Audio Library to browse, search, filter, and manage all generated audio files in one place
- 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
PRO & Agency Features
- 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
- 600+ voices across 70+ languages to match your audience worldwide
- 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
- Bulk audio generation to convert multiple posts or pages at once
- WooCommerce product narration. Let customers listen to product descriptions
- 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 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
- Advanced analytics with detailed listening data per post, device, and location
- White-label mode (Agency plan) to remove plugin branding from the backend and the text-to-speech player
- 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
How It Works
- Install and activate the plugin from your WordPress dashboard
- Publish or update a post or page. Audio is generated from your content automatically
- 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
Video Walkthrough
[youtube
https://youtu.be/Qn54oJxSDQg?si=il4kEy269JH4cxLm]
Features:
https://ttswp.com/features
Pricing:
https://ttswp.com/pricing
Documentation and setup guides:
https://ttswp.com/docs
Supported Languages
Compatible with WPML, Polylang, TranslatePress, Weglot, and other translation plugins.
Text to Speech works in 70+ languages. Here are some of the most popular:
- English (US, UK, AU): Text to Speech
- Norwegian: Tekst til tale
- Spanish: Texto a voz
- French: Synthèse vocale
- German: Text-in-Sprache
- Italian: Sintesi vocale
- Portuguese: Texto para fala
- Dutch: Tekst naar spraak
- Polish: Zamiana tekstu na mowę
- Turkish: Metinden sese
- Russian: Преобразование текста в речь
- Arabic: تحويل النص إلى كلام
- Hindi: पाठ से वाक्
- Bengali: টেক্সট টু স্পিচ
- Chinese: 文字转语音
- Japanese: テキスト読み上げ
- Korean: 텍스트 음성 변환
- Thai: แปลงข้อความเป็นเสียง
- Vietnamese: Chuyển văn bản thành giọng nói
- Indonesian: Teks ke suara
Accessibility and SEO Advantages
- Meet WCAG 2.1 AA and ADA requirements by offering an audio version of written content
- Raise average session time as visitors stay longer when they can listen instead of read
- Help users with dyslexia, ADHD, or visual impairments with a hands-free listening option
- Improve SEO with rich media and structured data that search engines can index and display
- Create inclusive multilingual content that reaches audiences in their preferred language
Use Cases
- Accessibility and inclusion. Make your website usable for people with reading difficulties or disabilities
- Blogs and news. Let readers listen to articles while on the go
- E-commerce product descriptions. Give shoppers the option to hear product details before buying
- Education. Help students absorb course material through audio learning
- Long-form content. Turn guides, reports, and documentation into easy-to-consume audio
- Multitaskers. Serve visitors who prefer listening while commuting, exercising, or working
- Content creators. Repurpose written content into audio format without extra recording effort
Other Tools by Norse Digital Group LLC
3.2.17 - 2026-05-11
- New: Added the new Pro Lite annual plan ($29/year) for users who already have an ElevenLabs API key and want every Pro feature without TTSWP monthly credits. Audio is stored locally on your WordPress server instead of TTSWP-managed cloud storage.
- New: The plugin now respects a new "cloud_storage" capability from the SaaS account API. Plans without cloud storage (Pro Lite) display the correct "stores audio locally" status on the Settings page and skip TTSWP-managed S3 upload prompts.
- Improved: The Account page now reflects up-to-date plan names and prices straight from the SaaS billing source of truth, so renames and price changes propagate without a plugin update.
- Changed: Pricing copy across the Account and License pages updated to match the current public pricing on ttswp.com/pricing.
3.2.16 - 2026-05-09
- New: The plugin Overview page now shows your current plan, credits remaining, and the next monthly reset date for paid and Agency users, so you can see your account status without leaving the main settings screen.
- Fixed: H3 heading blocks no longer break in the Gutenberg block editor. The plugin's admin styles were leaking a global rule that forced every H3 element to render as inline-flex, pushing H3 headings to the far left of the editor canvas. Reported on the WordPress.org support forum.
- Fixed: On the Upgrade page, switching between Monthly and Yearly billing now updates each plan's displayed price. A selector typo in the on-page script was preventing the price update from running.
- Fixed: Restored the visible gap between the player preview card and the settings form on the Audio Player Customization page.
- Improved: Tightened the plugin's admin CSS so its color picker, range slider, and tooltip rules apply only on plugin pages. Previously these rules could affect controls on other admin screens, including the WordPress block editor.
- Updated: Plugin metadata and readme to clearly identify Norse Digital Group LLC as the software publisher.
3.2.15 - 2026-05-03
- Fixed: Clicking "Upgrade" on a PRO voice in the Voices page no longer opens the legacy Lemon Squeezy checkout modal. Upgrade buttons across the plugin now go straight to the in-plugin billing page.
- Improved: PRO voices are easier to spot in the voice list. The PRO badge on the voice avatar is larger and outlined, the row gets a purple accent, and the upgrade call-to-action is a clearer button with a lock icon.
3.2.14 - 2026-05-02
- Fixed: On free-plan sites the audio player did not appear after generating audio.
- Fixed: The player's attribution popup text was being read aloud at the start of generated audio.
- Changed: Free-plan audio is now saved to wp-content/uploads/text-to-speech-tts/ (alongside paid-plan and shortcode audio) instead of wp-content/uploads/tts/. Files written by 3.1.0 through 3.2.13 still play via a read fallback, so no manual migration is needed.
3.2.13 - 2026-05-01
- Fixed: On free-plan sites where audio files are downloaded locally to the uploads/tts/ folder, the player now loads correctly even when post-meta has been cleared. The check that decides whether to load the player on a page now also looks in this folder, completing the filesystem fallback added in 3.2.12.
3.2.12 - 2026-04-30
- Fixed: Player no longer disappears on posts whose audio was generated before the plugin started saving its post-meta marker, on free-plan sites where automatic generation cannot run, and on sites using Media Offload where the audio file is recorded only in the speeches table. The check that decides whether to load the player on a page now also looks at the speeches table and the audio folder on disk, matching how the player itself locates the audio file.
3.2.11 - 2026-04-29
- Improved: Player styles and scripts are no longer loaded on posts and pages that have no generated audio. This trims unused CSS and JavaScript from page weight on sites where most posts do not use the audio player.
- Improved: On multilingual sites (Weglot, WPML), the player styles and scripts are now loaded only on language variants of a post that actually have audio. Previously, generating audio for one language caused the player assets to also load on language variants where no audio existed.
- Improved: A short pause is now spoken after every heading (H1 to H6) in the article body, matching the existing pause after the post title. Long articles with multiple sections now sound more natural.
- Developer: When Debug Mode is on and the player script does not load on a page, the console message now explains why (no audio, post type not enabled, or no shortcode) instead of just printing "Player Settings: Not found".
3.2.10 - 2026-04-23
- Fixed: Fusion Builder posts where body text is wrapped in bold tags (instead of paragraph tags) now generate audio for the whole article. Previously only the call-to-action or FAQ block at the end of such posts was read aloud. Your settings stay the same.
3.2.9
- New: Optional "Remote Debug Logging" toggle in Advanced settings. When enabled on a site connected to TTSWP, diagnostic events (content lengths, extraction flags, errors) are streamed to the TTSWP support dashboard so issues can be diagnosed without needing access to wp-admin or the server. No content is sent unless the separate "Include Content Samples" toggle is also enabled.
3.2.8 - 2026-04-23
- Fixed: Posts with a Read More break now generate audio for the full article body, not just the teaser paragraph. Affected Fusion Builder and other page builders that render only the teaser when audio is generated from the post list or via automatic generation. Your settings stay the same.
3.2.7 - 2026-04-22
- Improved: Smaller plugin package. Your settings stay the same.
3.2.6 - 2026-04-22
- Improved: Faster admin page loads.
- Improved: Internal cleanup. Removed unused files and code left over from earlier versions. Your settings stay the same.
3.2.5 - 2026-04-20
- Fixed: Truncate After on the CSS Selectors page now applies when regenerating audio for Weglot languages from the post list.
- Fixed: Regenerating audio now always re-applies your current settings (Truncate After, Include / Exclude Selectors) instead of reusing the text that was extracted on the first generation.
- Improved: When you run out of credits, the plugin shows a clearer "Not enough credits" dialog with Top up and Upgrade buttons, and the actual numbers you need and have left.
3.2.4 - 2026-04-20
- New: Truncate After setting on the CSS Selectors page. Enter one or more strings (one per line) and audio generation stops at the first match in the page. Useful for cutting off footnotes or reference sections.
- Fixed: Deleting audio now also removes the file from the CDN cache, so listeners stop hearing a deleted track once its CDN entry expires.
- Fixed: Regenerating audio and creating new audio now invalidate the CDN path on every write, so listeners always hear the latest version without waiting for the cache to refresh on its own.
3.2.3 - 2026-04-20
- Fixed: On the CSS Selectors page, saving the Content Selectors or Blocked Selectors field no longer clears the other field. Both textareas now save together.
3.2.2 - 2026-04-20
- New: Weglot per-language rows are back in the post / page list. Generate, play, regenerate, or delete audio for each Weglot language straight from the list. Translation happens automatically for destination languages.
- New: The Information button is now available in the Sticky Footer player, not only the inline player.
- Fixed: On the Player settings page, the Sticky Footer preview now updates in real time when you toggle Time, Volume, Speed, Download, Information, and Button background, and when you change Play Icon Size, Font Size, Player Padding, or Margin Bottom.
3.2.1 - 2026-04-19
- Fixed: Deleting audio from the post list sometimes left the old audio in place after a page refresh. Audio now clears on the first try.
- Improved: The Download button in the post list now opens a save dialog instead of opening the audio file in the browser, even when audio is stored on the CDN.
3.2.0 - 2026-04-18
- New: When your site isn't connected to TTSWP, a Connect Card now appears at the top of every plugin page. You always see how to get started.
- New: Pages that need a connected site show a greyed-out preview with one Connect button. No more clicking buttons that don't work yet.
- New: Getting Started cards on the Overview page after you connect. Three quick steps: choose a voice, customize the player, generate your first audio. Hide them once you know your way around.
- New: Download button in the TTS column on your posts list. Grab the audio file for any post in one click.
- New: Text to Speech menu in the WordPress admin bar with quick links to Voices, Player, Shortcode Generator, Statistics, Plan & Credits, and Documentation. Visible from both the backend and your site front-end.
- New: Longer single-request limits. Free users can now generate up to 10,000 characters per request, paid users up to 40,000. Turn longer articles into audio in one go.
- Improved: The Overview page still shows the welcome screen (free credits, voice demo, stats, and help links) when your site isn't yet connected.
- Improved: Long audio generation is more reliable. The plugin now waits longer for ElevenLabs to finish, so files that used to time out after 30 seconds complete properly.
- Improved: Clearer errors when audio generation fails. If the voice you picked has been deleted from your ElevenLabs account, or your text is longer than the chosen model accepts, you now get a message that tells you what to do.
- Improved: The Overview page now shows "ElevenLabs key invalid" when your API key stops working, so you know to update it. No more misleading green status pill.
- Improved: ElevenLabs credits on the Overview page now show per-key limits if you've set one (on app.ttswp.com), not the account-wide limit.
- Improved: Security fixes and code cleanup.
- Fixed: Saving Quick Settings sometimes showed a permission error instead of returning to the Overview page.
3.1.9 - 2026-04-08
- New: Sticky Footer Player (PRO). A persistent audio player bar that stays at the bottom of the page while visitors scroll and read. Includes play, pause, seek, volume, speed control, and download
- New: Waveform Progress Bar (PRO). A unique visual waveform for each post replaces the standard progress bar. Shows playback progress in real time with your chosen accent color
- New: Background Opacity setting for the Sticky Footer Player. Make the player background semi-transparent so page content is visible underneath
- New: Player settings now show a live Sticky Footer preview at the bottom of the admin page when Sticky Footer placement is selected
- New: Progress Bar type selector in Player Settings. Choose between Linear (free) and Waveform (PRO)
- Improved: Upgrade card on the Account page now shows your current plan's credit allocation
- Improved: "Upgrade plan" button replaces "Change tier" on the Account page for clearer messaging
- Improved: Player color settings now update on the frontend immediately after saving (no more stale cached styles)
- Improved: Player icon colors now follow your chosen Accent color setting
3.1.8 - 2026-04-07
- Fixed: Shortcode player not rendering when audio is stored on cloud (paid plans)
- Fixed: Shortcode audio mapping now persists between sessions for cloud-hosted files
3.1.7 - 2026-04-01
- New: Locale-aware number normalization — numbers, percentages, and years are now spoken in the correct language (Dutch, German, French, and 25+ languages)
- Fixed: European number formats (e.g. 8,52% and 5.083.173) were mispronounced or read in English
- Fixed: WPML admin language was overriding the plugin's TTS language setting in the Shortcode Generator
3.1.6 - 2026-03-31
- New: Numbers, currency, and percentages are now converted to spoken words before synthesis (e.g. $22,200 → "twenty-two thousand two hundred dollars", 2% → "two percent")
- Fixed: Shortcode audio generator was missing number normalization, causing TTS to mispronounce amounts
- Fixed: ElevenLabs Playground was sending raw text without any preprocessing
3.1.5 - 2026-03-31
- Fixed: Audio was being auto-generated on every page visit for paid plan users, regardless of settings
- Fixed: Auto-generation on page visit now correctly respects the "Auto-generate on publish" setting
- Fixed: Credit usage from auto-generation was not logged in the "Credit Usage by Post" table
- Fixed: Failed auto-generation attempts no longer retry on every page load (6-hour cooldown)
3.1.4 - 2026-03-31
- Removed: Remote telemetry collection and usage tracking to external servers
- Fixed: License page no longer blocked for free plan users
- Fixed: Some posts causing a server error when auto-generation is enabled
- Fixed: Browser console warning about unreachable code in player script
3.1.3 - 2026-03-31
- New: Full translation support for 20 languages
- Improved: Sidebar menu now matches the redesigned in-app navigation
- Updated: Fresh translation template (.pot) with all current strings
3.1.2 - 2026-03-30
- Improved: "Site not connected" error now shows a helpful modal with a link to Settings instead of a plain message
- Removed: Telemetry consent modal and remote telemetry collection
3.1.1 - 2026-03-29
- New: Welcome page with onboarding flow, demo audio player, and step-by-step guide for new users
- Improved: Setup checklist items now link directly to the relevant page
- Improved: Setup checklist correctly detects first audio generated across all languages
- Fixed: Proxy download Content-Type validation and tightened SSRF allowlist
- Fixed: File upload validation in Speech-to-Text restricted to audio formats only
- Fixed: Settings export no longer includes sensitive keys (S3, integrity secret)
- Security: Multiple hardening fixes across AJAX handlers and admin pages
3.1.0 - 2026-03-29
TTSWP Cloud Platform
- New: TTSWP cloud dashboard for managing plans, credits, and connected sites
- New: One-click site connection from the plugin Overview page
- New: Pro and Agency plans with per-site billing and monthly/yearly toggle
- New: Credit top-ups that never expire
- New: ElevenLabs BYOK - connect your personal API key as automatic fallback when plan credits run out, with 10,000 free monthly credits from ElevenLabs
- New: Step-by-step ElevenLabs API key setup guide
Upgrade Plan Page
- New: Redesigned Upgrade page showing current plan, Pro, and Agency side by side
- New: Current plan banner with credits remaining and quick links to Manage Plan and Top Up
- New: Feature showcase (Premium Audio, Automation, Integrations) below the plan cards
Improvements
- New: Review nudge card on the Overview page after 10+ audio files or 7 days of use
- Improved: Setup checklist now detects ElevenLabs API key from both TTSWP cloud and local plugin settings
3.0.2 - 2026-03-25
- Fixed: Save settings button not working on all admin pages (White Label, Advanced, Player, Voices, Content, PRO Support)
- Fixed: No confirmation message shown after saving settings on pages with custom form handlers
- Improved: Audio Library now shows a toast notification when audio is successfully regenerated
3.0.1 - 2026-03-25
- Improved: Generated audio files now use the post title in the filename (e.g.
the-headline-14-en.mp3 instead of mementor-14-en.mp3). Existing audio is not affected
- Improved: Comprehensive security hardening - added nonce verification, output escaping, input sanitization, and prepared statements across all admin pages and AJAX handlers
- Improved: Settings import now validates option names against a whitelist to prevent unauthorized writes
- Improved: Complete plugin cleanup on uninstall - all database tables, options, transients, and cron jobs are now properly removed
- Improved: Deactivation now clears all scheduled cron events to prevent orphaned tasks
- Improved: Cron scheduling moved out of class constructors to reduce overhead on frontend page loads
- Improved: Infrequently used options (DB versions, timestamps) no longer autoload on every request
- Improved: All PHP files now include direct access protection
- Improved: Removed duplicate AJAX handler registrations and dead code
- Fixed: Wrong text domain in several translation strings preventing proper localization
- Fixed: Audio player showing a "Generate Audio" button on posts that already have audio
- Fixed: Shortcode player rendering on the frontend even when no audio file exists
- Fixed: Auto-inserted player rendering with a pending state instead of being hidden when no audio is available
- New: Bulk rename in Audio Library - rename old-format filenames (
mementor-ID-lang.mp3) to use the current post title
- New: Bulk download in Audio Library now creates a single zip file when multiple files are selected
- Fixed: Frontend audio player now uses post meta as the authoritative source for audio URLs, preventing stale references after file renames
- Fixed: Duplicate AudioObject schema markup when multiple player instances exist on a page
- Fixed: Audio Library play counts now include today's events instead of only showing aggregated historical data
- Fixed: Regenerating audio with Media Library enabled deleted the newly saved file due to attachment cleanup race condition
- Fixed: Deleting audio from the post list now properly removes the Media Library attachment and physical file
- Fixed: Post list audio detection and deletion now uses post meta URLs instead of hardcoded filename patterns
- Fixed: Speech builder caching DELETE query results which could mask errors
- Fixed: N+1 database query in statistics page running SHOW TABLES inside a loop
- Fixed: Audio file saving now always uses WP_Filesystem API instead of falling back to raw PHP functions
3.0.0 - 2026-03-25
Redesigned Admin Interface
- New: Sidebar navigation replaces horizontal tab navigation for faster access to all plugin pages
- New: Universal card-based design system with consistent styling across every admin page
- New: Design tokens (CSS custom properties) for colors, spacing, typography, and component styles
- New: SVG speaker icon in the WordPress admin menu and plugin sidebar
- New: Global input styling with improved contrast, visible borders, and purple focus states
New Pages
- New: Audio Library page - browse, search, filter, sort, and manage all generated audio files with inline playback and bulk actions (select, delete, download)
- New: Add More Credits page - view available credit tiers with a dedicated sidebar CTA button
- New: Documentation page under System & Help
Redesigned Pages
- Redesigned: Voices page - card-based voice list with filters, compact audio settings grid, and copy Voice ID on hover
- Redesigned: Player page - sticky live preview, two-panel controls and colors layout, organized sizing and spacing
- Redesigned: License page - sales page with feature cards and Stripe checkout for free users, streamlined license management for PRO and Agency users
- Redesigned: PRO Support page - support form with info sidebar in a two-column layout
- Redesigned: Statistics, My Stats & Voices, Advanced, Affiliate, and White Label pages - all converted to the new design system
Other Improvements
- New: PRO plugin update notification in the sidebar when a new version is available
- New: Review tracking - footer updates after clicking the review link
- New: White Label enhancements - SVG logo upload support and the ability to hide Documentation, Add More Credits, and PRO Support menu items
- Improved: Checkbox styling with purple checkmark on white background
- Improved: Footer with review link and "Built with" branding
Previous Versions
Version 2.x and earlier included: WooCommerce product audio, WPML multi-language support, Media Library integration, S3 storage, Weglot support, Elementor compatibility, content extraction improvements, and many bug fixes.