SMP WP Text To Speech
HexaTextToSpeech WordPress plugin
by Hexa Web Systems · github.com/mikeyperes/smp-wp-text-to-speech · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/mikeyperes/smp-wp-text-to-speech/archive/refs/heads/main.zipDeclares an update source (https://github.com/mikeyperes/smp-wp-text-to-speech/), so updates arrive through the plugin's own updater.
Readme
SMP WP Text To Speech
Standalone WordPress plugin for converting post/page text into audio with provider-specific settings, AJAX credential validation, editor extraction, and one-click post audio generation.
Version 1.3.24 adds an unstyled custom-control player for Elementor-owned presentation, including play/pause, timeline, elapsed and duration labels, volume and mute, skip, speed, keyboard-native range controls, and live status. Narration Card selectors are isolated so no visual skin reaches the unstyled control surface.
Version 1.3.23 lowers the shared styled-player foundation with :where() so named templates reliably control their own design and Elementor can override the stable player markup without a specificity fight. The unstyled template remains free of plugin-owned presentation.
Version 1.3.22 adds a supported No design (unstyled) player template for Elementor-owned presentation. It preserves the shortcode markup, native audio, enhanced controls, transcript behavior, JavaScript hooks, and ARIA attributes while excluding every plugin-owned skin rule and inline design token from that template.
Version 1.3.21 isolates the Dark Narration Card's play button and title from active-theme button and heading decorations so its frontend output matches the admin preview.
Version 1.3.20 adds the reference-style Dark Narration Card template with a large play button, timeline, duration, skip controls, playback speeds, and selected-color accents. Player template labels now describe the visible treatment so each design is easy to identify in the settings UI.
Version 1.3.19 makes frontend display changes immediate by centrally invalidating supported page/object caches after global player settings change and after generated or uploaded audio is synchronized to a post. LiteSpeed receives targeted post/URL purges for audio changes and a global purge for template, placement, color, label, size, and control changes; WP Rocket and W3 Total Cache fallbacks are included.
Version 1.3.18 gives the Clean Card player a straight blue top accent by removing its top-left and top-right corner radius while retaining the rounded lower corners. Its release-fingerprinted stylesheet path also prevents stale edge-cache CSS from making the admin preview and frontend disagree.
Version 1.3.17 integrates the settings experience with the canonical Hexa WP Core admin shell. All settings sections now use shared tab definitions, a grouped and collapsible sidebar, AJAX navigation with browser-history support, plugin/Core Git identity reporting, and the shared updater dashboards. The vendored Hexa WP Core package is updated to 0.19.73.
Version 1.3.16 added secure retrieval of an existing domain-assigned site API key. Retrieval uses a one-time WordPress REST challenge, exact-domain verification, encrypted local storage, and immediate API validation; it never creates or rotates a key.
Plugin folder/slug:
smp-wp-text-to-speech
Main file:
smp-wp-text-to-speech.php
Providers
- Kokoro-82M local service
- Piper local service
- Amazon Polly
- Google Cloud Text-to-Speech
- ElevenLabs
- Deepgram Aura
- Cartesia Sonic
Admin Workflow
- Install the folder under
wp-content/plugins/smp-wp-text-to-speech. - Activate
SMP WP Text To Speech. - Open Settings -> SMP WP Text To Speech. The canonical Hexa WP Core sidebar provides Dashboard, API Settings, Features, Display, Shortcodes, Schema, and Hexa WP Core sections.
- Fill provider credentials.
- Use each provider card's
Test credentialsbutton. Validation runs throughadmin-ajax.phpand does not refresh the page. - Set default service and default profile.
- Edit a post in
post.php. - Use the
SMP WP Text To Speechmetabox:- Extract content
- Review the AJAX preview
- One-click generate audio
- Optionally override profile/service/voice/model/language/speed
Local Service Contract
Kokoro and Piper are expected to be behind a local HTTP wrapper. The plugin supports:
GET /healthGET /voicesPOST /synthesize
Recommended JSON body:
{
"text": "Article text",
"voice": "af_heart",
"model": "kokoro-82m",
"language": "en-US",
"speed": 1,
"format": "mp3"
}
The service can return raw audio bytes, or JSON:
{
"audio_base64": "...",
"mime_type": "audio/mpeg",
"extension": "mp3"
}
It can also return:
{
"audio_url": "https://..."
}
Output
Generated audio is saved under:
wp-content/uploads/hexa-text-to-speech/
Post meta:
_hexa_tts_audio_url_hexa_tts_audio_path_hexa_tts_status_hexa_tts_provider_hexa_tts_profile_hexa_tts_voice_hexa_tts_model_hexa_tts_language_hexa_tts_speed_hexa_tts_text_hash_hexa_tts_character_count_hexa_tts_generated_at_hexa_tts_error
Shortcode
[hexa_tts_player]
[hexa_tts_player post_id="123"]
[smp_tts_player post_id="123" template="unstyled"]
Notes
This initial version performs single-request generation up to the configured character limit. For very long articles, the next production step should add chunking plus ffmpeg stitching/normalization.