ListenUp provides a comprehensive set of features to add professional text-to-speech functionality to your WordPress site.
One-Click Audio Generation
Generate professional audio for any post or page directly from the WordPress editor. The ListenUp meta box provides a simple interface for creating audio.
How it works:
- Click "Generate Audio" in the post editor meta box
- Content is extracted and cleaned (HTML stripped, entities decoded)
- Text is sent to Murf.ai for processing
- Audio file is downloaded and cached locally
- Player becomes available for visitors
Benefits:
- No technical knowledge required
- Audio generates in seconds to minutes
- Works with any post type
- Automatic caching saves API credits
Professional AI Voices
Access Murf.ai's full library of professional AI voices with natural-sounding speech.
Voice features:
- Multiple languages and accents
- Male and female voices
- Various speaking styles
- Preview voices before selecting
Configuration:
- Go to Settings → ListenUp
- Click "Load Available Voices"
- Browse and preview voices
- Select your preferred default voice
Voice Styles
Many voices support multiple speaking styles to match your content type:
| Style | Best For |
|---|---|
| Conversational | Blog posts, casual content |
| Newscast | News articles, updates |
| Narration | Stories, long-form content |
| Promo | Marketing, promotional content |
Not all voices support all styles. Available styles display after selecting a voice.
Gen2 Speech Controls
Tune Murf.ai Gen2 audio while still generating reusable files that ListenUp can cache locally or offload to cloud storage.
Available controls:
- Locale selection for multilingual voices
- Sample rate for telephony, spoken-word, or production-quality output
- Mono or stereo channel output
- Speaking speed and pitch adjustment
- Variation control for more or less dynamic delivery
- URL or direct base64 response mode, both cached locally after generation
- Optional target duration for single-file Gen2 audio
- Optional word timing metadata for future transcript and highlighting features
[pause 1s]tags in content and pre-roll scripts, normalized to Murf's supported 0.1s-5s range
Response and metadata notes:
| Setting | Practical Detail |
|---|---|
| Audio Response Mode | Changes whether ListenUp receives a Murf URL or direct base64 audio; both are cached locally after generation |
| Target Audio Duration | Applies to single-file generation only; long chunked posts skip duration targeting |
| Word Timing Metadata | Stores Murf timing data with newly generated audio, but does not display transcripts yet |
| Pause Tags | Affect the spoken output, so regenerate audio after adding or changing them |
Falcon streaming is intentionally not used for post audio generation because ListenUp is built around reusable generated files.
Intelligent Content Chunking
For posts that exceed Murf.ai's API limits, content is automatically split into manageable chunks.
How it works:
- Text is analyzed for length
- If over 2800 characters, content splits by sentences
- Each chunk is processed separately
- Frontend player seamlessly plays all chunks in sequence
- Downloads automatically concatenate chunks
Benefits:
- No content length limitations
- Seamless playback experience
- Single file downloads
- Efficient API usage
Audio Formats
ListenUp supports multiple audio formats for different use cases:
| Format | Benefits |
|---|---|
| MP3 | Best compatibility, smaller files (recommended) |
| WAV | Highest quality, larger files |
| OGG | Open format, good compression |
| FLAC | Lossless compression |
Note: MP3 is recommended for most sites due to universal browser support and efficient file sizes.
Pre-roll Audio
Add branded introductions that play before your content.
Options:
- Upload pre-roll: Use your own audio file
- Generate pre-roll: Create spoken intro from text using Murf.ai
Use cases:
- Podcast-style intros
- Brand mentions
- Sponsor messages
- Content warnings
Configuration:
- Go to Settings → ListenUp → Pre-roll
- Upload audio file OR enter text to generate
- Pre-roll applies to all new audio generations
Pronunciation Dictionary
Define custom pronunciations for technical terms, acronyms, and brand names.
Why it matters:
Without custom pronunciation, "AWS" might be spoken as "aws" instead of "Amazon Web Services."
Pronunciation types:
| Type | Use Case | Example |
|---|---|---|
| SAY_AS | Plain text replacement | "NES" → "Nintendo Entertainment System" |
| IPA | Phonetic notation | "live" → "laɪv" |
Learn more about Pronunciation →
Accessible Audio Player
A fully accessible audio player with modern design and comprehensive keyboard support.
Accessibility features:
- Full keyboard navigation
- Screen reader compatible
- WCAG-compliant controls
- High contrast mode support
- Reduced motion support
- Proper ARIA labels
Player controls:
- Play/Pause button
- Progress bar with seeking
- 15-second skip buttons (if enabled)
- Playback speed selector (if enabled)
- Download button (if enabled)
- Time display (current/total)
Player Customization
Control how the frontend player looks and behaves without writing custom code.
Display options:
| Setting | Options |
|---|---|
| Player Layout | Featured player or compact controls |
| Player Accent | Blue, green, orange, or slate |
| Skip Controls | Show or hide 15-second rewind/forward buttons |
| Playback Speed Control | Show or hide the listener speed selector |
| Default Playback Speed | 0.75x, 1x, 1.25x, 1.5x, 1.75x, or 2x |
Layout guidance:
- Use Featured player when the audio version should stand out in an article
- Use Compact controls when your theme already provides strong article framing
- Choose the accent color that best fits your publication or section style
- Keep skip and speed controls enabled for long-form spoken-word content
Configuration:
- Go to Settings → ListenUp → Display
- Choose the player layout and accent
- Choose whether to show skip controls and playback speed controls
- Set the default playback speed
- Save settings
Automatic Placement
Configure automatic player insertion without editing templates.
Placement options:
| Setting | Behavior |
|---|---|
| None | Manual placement only (shortcode) |
| Posts | Auto-insert on all blog posts |
| Pages | Auto-insert on all pages |
| Both | Auto-insert on posts and pages |
Position options:
- Before Content – Player appears at top
- After Content – Player appears at bottom
Shortcode Support
Use shortcodes for precise player placement.
Basic usage:
[listenup]
Display audio from specific post:
[listenup post_id="123"]
In templates:
<?php echo do_shortcode('[listenup]'); ?>
Audio Library Shortcode
Display a collection of posts with audio using the library shortcode.
Basic usage:
[listenup_library]
With options:
[listenup_library posts_per_page="5" category="podcasts" autoplay="true"]
Available attributes:
| Attribute | Default | Description |
|---|---|---|
| posts_per_page | 10 | Number of posts to display |
| post_type | post | Post type to query |
| orderby | date | Sort order (date, title, rand) |
| order | DESC | Sort direction |
| category | – | Filter by category slug |
| autoplay | false | Auto-advance to next track |
Lumenare Search Integration
If your site also uses Lumenare Search, ListenUp automatically boosts ranked search results for posts that have generated audio.
How it works:
- Hooks into Lumenare Search's ranked-results filter
- Detects local, chunked, or cloud-hosted ListenUp audio metadata
- Applies a 15% default relevance lift to audio-bearing posts
- Keeps the boost configurable with developer filters
Developer filters:
| Filter | Purpose |
|---|---|
listenup_lumenare_search_audio_boost_enabled |
Enable or disable the boost |
listenup_lumenare_search_audio_boost_multiplier |
Adjust the relevance multiplier |
listenup_lumenare_search_audio_meta_keys |
Customize which post meta keys count as audio |
Download Controls
Control who can download audio files from your site.
Options:
| Setting | Behavior |
|---|---|
| Allow All | Anyone can download |
| Logged In Only | Only authenticated users |
| Disable | No downloads allowed |
When downloads are restricted, the download button is hidden from the player.
Leech Protection
Audio files are served through a secure PHP proxy with cache-safe per-file tokens for public playback.
How it works:
- Public playback URLs avoid expiring WordPress nonces so page caches and CDNs do not break audio
- Private or unpublished content still uses WordPress nonce and capability checks
- Direct file access can be blocked at the server level
- HTTP range requests supported for seeking
- Proper caching headers for performance
Benefits:
- Prevents unauthorized direct access
- Stops hotlinking from other sites
- Works on any PHP server (Apache, Nginx, IIS)
- No server configuration required
Cloud Storage Integration
Offload audio files to cloud storage providers to reduce bandwidth and improve delivery.
Supported providers:
- Amazon S3
- Cloudflare R2
- Google Cloud Storage
Benefits:
- Reduce server bandwidth usage
- Improve delivery performance
- Geographic distribution (CDN)
- Signed URLs for security
Learn more about Cloud Storage →
Audio Library Admin
Manage all audio content from a centralized admin page.
Features:
- View all posts with audio
- Filter by audio status
- See storage location (local/cloud)
- Upload selected rows or all local-only audio files to cloud storage without regenerating
- Track bulk cloud migration by post count while preserving canonical playable audio files
- Bulk management options for existing audio files
- Pagination for large sites
Access: Settings → ListenUp → Audio Library tab
WP-CLI Commands
For large sites, use WP-CLI for bulk operations:
# Generate for all posts without audio
wp listenup generate --all
# Generate for specific post
wp listenup generate --post-id=123
# Regenerate all audio
wp listenup generate --all --force
# Upload to cloud storage
wp listenup cloud-upload --all
# Show statistics
wp listenup stats
# Clean up orphaned files
wp listenup cleanup-orphaned
# Rebuild Audio Library admin cache
wp listenup audio-library-cache rebuild
# Rebuild [listenup_library] shortcode query cache
wp listenup library-cache rebuild --posts-per-page=50
Background Generation
ListenUp can automate audio generation for editorial workflows:
- Queue generation shortly after selected post types are published
- Run a recurring backfill job for recent published content missing audio
- Skip posts/pages that already have ListenUp audio
- Keep generation out of the editor's publish request via WP-Cron
Configure these options in Settings → ListenUp → Automation.
Analytics Integration
Track audio engagement through Google Analytics integration.
Events tracked:
- Audio play started
- Audio paused
- Audio completed
- Audio downloaded
Integration:
Events push to dataLayer for GTM/GA4 consumption. Requires Google Tag Manager or similar to capture events.
Smart Caching
Efficient caching system saves API credits and improves performance.
How it works:
- Audio files cached locally on first generation
- Cache keys include content hash, voice, style, locale, and Gen2 generation settings
- Content changes trigger regeneration prompt
- Murf response metadata, duration, quota count, warnings, and word timings are stored with generated audio when returned
- Plugin assets use file-based versioning to avoid stale JavaScript or CSS after CDN/browser caching
Cache location: wp-content/uploads/listenup-audio/
No FFmpeg Required
Unlike many audio plugins, ListenUp works without FFmpeg.
Benefits:
- Works on shared hosting
- Works on managed WordPress hosts
- No server configuration needed
- Compatible with any PHP environment
How it works:
- Uses Murf.ai for all audio processing
- Simple binary concatenation for multi-chunk downloads
- Server-agnostic audio delivery
Security Features
Built-in protection keeps your audio secure:
- Cache-safe playback tokens – Public audio URLs work behind page caches and CDNs
- Nonce verification – Private and admin AJAX requests verified
- Leech protection – Prevents unauthorized access
- Input sanitization – All data properly sanitized
- Secure file delivery – Audio served through PHP proxy
- Cloud signed URLs – Time-limited access tokens