[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$frFqq80RAyonMIKo7lHN2Cwc3qRNcbRZES0DFBrzR6GA":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":38,"analysis":135,"fingerprints":448},"speaker-lite","Speaker Lite","1.2.0","merkulove","https:\u002F\u002Fprofiles.wordpress.org\u002Fmerkulove\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fspeaker.merkulov.design\u002Flite\" rel=\"nofollow ugc\">Speaker Lite\u003C\u002Fa> is a WordPress Plugin designed to converts website page content into human-like speech. The plugin uses the latest technology of machine learning and artificial intelligence to play a high-quality human voice and add an audio player with content to the page. The basis of the Speaker Lite plugin is the Google Cloud Platform, which ensures the reliability and speed of the plugin anywhere in the world.\u003C\u002Fp>\n\u003Cp>Visit \u003Ca href=\"https:\u002F\u002Fspeaker.merkulov.design\u002Flite\" rel=\"nofollow ugc\">Live Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The Speaker Lite WordPress Plugin converts text into human-like speech in more than 400 voices across 40+ languages and variants. It applies groundbreaking research in speech synthesis (WaveNet) and Google’s robust neural networks to deliver high-fidelity audio.\u003Cbr \u002F>\nThis product has been tested and is fully compatible with all popular WordPress editors. Incredibly flexible plugin settings allow you to enable\u002Fdisable it on different pages; for different user groups; on different devices(mobile, tablet, desktop).\u003C\u002Fp>\n\u003Cp>For tutorials visit our \u003Ca href=\"https:\u002F\u002Fdocs.merkulov.design\u002Fspeaker-lite\" rel=\"nofollow ugc\">Online Documentation\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Key Features of Speaker Lite\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Powered by Google Cloud Platform\u003C\u002Fli>\n\u003Cli>40+ Languages Includes\u003C\u002Fli>\n\u003Cli>Supported Basic SSML\u003C\u002Fli>\n\u003Cli>Customizable speech speed and pitch\u003C\u002Fli>\n\u003Cli>More than 400 human-like voices\u003C\u002Fli>\n\u003Cli>Custom pauses\u003C\u002Fli>\n\u003Cli>Compatible with all Modern Browsers\u003C\u002Fli>\n\u003Cli>Includes exclusive access to WaveNet technology\u003C\u002Fli>\n\u003Cli>Installation Guide & Detailed User Manual\u003C\u002Fli>\n\u003Cli>Seven Positions for Placing the Player\u003C\u002Fli>\n\u003Cli>Five Player Styles\u003C\u002Fli>\n\u003Cli>Compatible with Elementor, WPBakery Page Builder and Visual Composer, Divi, etc.\u003C\u002Fli>\n\u003Cli>Works well with all popular WordPress Themes\u003C\u002Fli>\n\u003Cli>Download link on Front-end and(or) Back-end\u003C\u002Fli>\n\u003Cli>Includes Player Shortcode to Place Anywhere on the Website\u003C\u002Fli>\n\u003Cli>Perfect for RTL direction\u003C\u002Fli>\n\u003Cli>Native Valid JavaScript, without jQuery\u003C\u002Fli>\n\u003Cli>Lightweight and Fast\u003C\u002Fli>\n\u003Cli>Beautiful modern User Interface\u003C\u002Fli>\n\u003Cli>Tested and Compatible up to WordPress 6+\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Flexible Design Settings\u003C\u002Fh4>\n\u003Cp>Flexible design features allow you to customize the appearance of the player to your liking and place it in different positions on the page. Besides, you can place several players on one page. For example, if you want to insert audio versions of several other articles into one article to maintain the context of the story.\u003C\u002Fp>\n\u003Ch4>Ready to work in any environment\u003C\u002Fh4>\n\u003Cp>We continuously monitor the latest innovations and trends in the development universe. And they prepared a plugin to work with the newest version of PHP. However, you can use the plugin on older versions as well. The Speaker Lite is compatible with the PHP version starting from 5.6 and up to most recent stable versions.\u003C\u002Fp>\n\u003Ch4>Reliability and Compatibility\u003C\u002Fh4>\n\u003Cp>Speaker Lite is fully cross-browser. It does not matter which browser users view your site. Chrome, Firefox, Opera, Safari, Edge, or even the outdated versions of Internet Explorer – in all browsers, visitors will get an incredible experience. Moreover, this is especially important if your site has many long pages, such as a Blog, Portfolio, Corporate Website, eCommerce Project, Creative Agency, Real Estate Listing, Personal CV, a Restaurant or Retail Company.\u003Cbr \u002F>\nSpeaker Lite Text-to-Speech Plugin tested and compatible with All Major WP Plugins: Yoast SEO, Contact Form 7, W3 Total Cache, NextGen Gallery, Slider Revolution, WooCommerce, etc. It also works perfectly and improves the user experience with popular Website Page Builders, like Elementor, Visual Composer, Gutenberg, Beaver Builder, Divi, Themify Builder, WP Bakery Page Builder, Layers WP, and many others. The plugin works perfectly with all significant WordPress frameworks: Genesis, Divi, Themify, Warp 7, Ultimatum, Beans, Unyson, Gantry, and others.\u003C\u002Fp>\n\u003Ch4>Compatible with PHP 7\u003C\u002Fh4>\n\u003Cp>This plugin used the latest Google libraries which are compatible with PHP 8.1. For optimal performance and compatibility, ensure you’re using PHP 8.1 or later. If you’re running an older version, consider upgrading.\u003Cbr \u002F>\nNeed a PHP 7 alternative? Look for the Speaker PHP7 child-plugin within the Speaker PRO package.\u003C\u002Fp>\n\u003Ch4>Feel the Power of Speaker PRO\u003C\u002Fh4>\n\u003Cp>Speaker Light includes only the basic functions. Go \u003Ca href=\"https:\u002F\u002F1.envato.market\u002Fspeaker\" rel=\"nofollow ugc\">Speaker PRO\u003C\u002Fa> to get more awesome features. Buy a license and gain access to all hidden features.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>No prohibitions or restrictions\u003C\u002Fli>\n\u003Cli>More High-end Voices\u003C\u002Fli>\n\u003Cli>Full power of SSML\u003C\u002Fli>\n\u003Cli>Automatically Speech Synthesizing\u003C\u002Fli>\n\u003Cli>Full support of Custom Post Types\u003C\u002Fli>\n\u003Cli>Visual Speech Template Editor\u003C\u002Fli>\n\u003Cli>Batch Pages Processing\u003C\u002Fli>\n\u003Cli>Premium Customer Support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Go \u003Ca href=\"https:\u002F\u002F1.envato.market\u002Fspeaker-buy\" rel=\"nofollow ugc\">PRO\u003C\u002Fa>.\u003C\u002Fp>\n","Speaker Lite is a WordPress Plugin designed to converts website page content to human-like speech on more than 400 voices across 40+ languages",30,5824,46,3,"","6.6.5","6.0","8.1",[20,21,22,23,24],"google-speech","speaker","ssml","text-to-speech","voice","https:\u002F\u002Fspeaker-lite.merkulov.design\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspeaker-lite.1.2.0.zip",100,0,null,"2026-03-15T10:48:56.248Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},10230,97,8,92,"2026-04-05T09:43:57.799Z",[39,63,81,100,118],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":60,"download_link":61,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"speechkit","BeyondWords – Text-to-Speech","6.2.0","BeyondWords (formerly SpeechKit)","https:\u002F\u002Fprofiles.wordpress.org\u002Fspeechkit\u002F","\u003Cp>BeyondWords is the AI voice platform that brings frictionless audio publishing to newsrooms, writers, and businesses. Automatically create audio versions of WordPress posts and pages and embed via a customizable player. Lifelike neural voices and customizable text-to-speech algorithms deliver realistic speech that keeps listeners coming back for more.\u003C\u002Fp>\n\u003Ch3>GET STARTED WITH BEYONDWORDS\u003C\u002Fh3>\n\u003Cp>To get started with BeyondWords, please \u003Ca href=\"https:\u002F\u002Fbeyondwords.io\u002Fbook-a-demo\u002F?utm_source=wordpress&utm_medium=referral&utm_campaign=&utm_content=plugin\" rel=\"nofollow ugc\">book a demo\u003C\u002Fa> with our team.\u003C\u002Fp>\n\u003Cp>We’ll walk you through the platform, discuss your goals, and help set up your account so you can begin converting your WordPress content into audio.\u003C\u002Fp>\n\u003Cp>Any questions? Visit our website \u003Ca href=\"https:\u002F\u002Fbeyondwords.io\u002F?utm_source=wordpress&utm_medium=referral&utm_campaign=&utm_content=plugin\" rel=\"nofollow ugc\">https:\u002F\u002Fbeyondwords.io\u003C\u002Fa> or email \u003Ca href=\"mailto:support@beyondwords.io\" rel=\"nofollow ugc\">support@beyondwords.io\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Key features of our text-to-speech plugin for WordPress:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Easily pick which pages and posts are converted into audio\u003C\u002Fli>\n\u003Cli>Audio is automatically created and embedded via our customizable player\u003C\u002Fli>\n\u003Cli>Powerful and versatile player options to fit your web and mobile experience.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Key features of your BeyondWords dashboard:\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Lifelike AI voices enhanced by customizable NLP algorithms\u003C\u002Fli>\n\u003Cli>Create or edit audio in the Text-to-Speech Editor\u003C\u002Fli>\n\u003Cli>Curate custom playlists and podcast feeds\u003C\u002Fli>\n\u003Cli>Embed audio manually or share via URL\u003C\u002Fli>\n\u003Cli>Monitor engagement through analytics\u003C\u002Fli>\n\u003Cli>Manage audio through the audio CMS\u003C\u002Fli>\n\u003Cli>Monetize your audio with audio ads\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You are just minutes away from engaging audiences with AI audio. Join the hundreds of WordPress publishers already using our text-to-speech plugin and platform to make the most of their news articles, reports, guides, and more.\u003C\u002Fp>\n\u003Cp>If you have any questions, feedback, or issues, please email \u003Ca href=\"mailto:support@beyondwords.io\" rel=\"nofollow ugc\">support@beyondwords.io\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>CUSTOMER TESTIMONIAL\u003C\u002Fh3>\n\u003Cblockquote>\n\u003Cp>“We’ve been using BeyondWords to convert our articles into audio for over a year. Overall, we are very impressed with the service. The quality of the audio is consistently the best we’ve found available, the plugin and dashboard provides all the functionality we need, processing and delivery of the audio is fast and the players fit nicely on our page. We’ve had great customer feedback and the team have been quick to make adjustments based on our suggestions.”\u003C\u002Fp>\n\u003Cp>&mdash; Kenneth Creamer, Creamer Media\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>ADVANCED TEXT-TO-SPEECH\u003C\u002Fh3>\n\u003Cp>Looking for the best text-to-speech plugin on WordPress?\u003C\u002Fp>\n\u003Cp>Using methods like natural language processing (NLP), BeyondWords’ unique text processing algorithms optimally convert your content into speech synthesis markup language (SSML). This enables AI voices to effectively pronounce elements that other platforms can struggle with, such as names, numbers, and dates, as well as filtering out elements that shouldn’t be read aloud. You can even add aliases to ensure everything is read exactly how you want it.\u003C\u002Fp>\n\u003Cp>BeyondWords gives you access to neural voices from Google Cloud, Amazon Web Services, and Microsoft Azure (500+ voices across 140+ language locales).\u003C\u002Fp>\n\u003Cp>You can also get access to premium neural voices &mdash; voice clones of professional voice actors that are exclusive to BeyondWords. Users have the option to develop a completely bespoke custom voice using our voice cloning service.\u003C\u002Fp>\n\u003Cp>The result is naturalistic spoken-word audio content that engages your target audience &mdash; at a fraction of the cost of human recordings.\u003C\u002Fp>\n\u003Ch3>EFFORTLESS DISTRIBUTION\u003C\u002Fh3>\n\u003Cp>BeyondWords makes it easy to reach new audiences and grow your listenership. As well as auto-embedding audio players to your WordPress site, you can embed your audio manually or share via URL. You can even download your audios as mp3 files.\u003C\u002Fp>\n\u003Cp>This includes content created automatically with our WordPress text-to-speech plugin, as well as content created manually with the Text-to-Speech Editor &mdash; perfect for audio newsletters.\u003C\u002Fp>\n\u003Cp>Users can even create custom playlists that keep listeners listening for longer. These can be embedded, shared via URL, or even distributed via podcast feed. That means you can reach audiences through platforms like Apple Podcasts and Spotify.\u003C\u002Fp>\n\u003Ch3>ANALYTICS AND MONETIZATION\u003C\u002Fh3>\n\u003Cp>You get access to project analytics, which means you can track listener engagement at the project level through your BeyondWords dashboard. Users can also get access to audio analytics, as well as Google Analytics and Google Tag Manager integrations.\u003C\u002Fp>\n\u003Cp>You can even leverage your listenership through audio advertising. Use our self-serve audio advertising feature to create your own campaigns or use VAST (video ad serving template) to connect a programmatic advertising platform, such as Google Ad Manager.\u003C\u002Fp>\n","BeyondWords is the AI voice platform that brings frictionless audio publishing to newsrooms, writers, and businesses.",900,92160,72,27,"2026-03-11T23:48:00.000Z","6.9.4","5.8","8.0",[56,57,23,58,59],"ai","audio","tts","voice-cloning","https:\u002F\u002Fbeyondwords.io","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspeechkit.6.2.0.zip","2026-03-15T15:16:48.613Z",{"slug":64,"name":65,"version":66,"author":65,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":72,"num_ratings":73,"last_updated":74,"tested_up_to":52,"requires_at_least":75,"requires_php":76,"tags":77,"homepage":79,"download_link":80,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"websitevoice","WebsiteVoice","1.12.0","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebsitevoice\u002F","\u003Ch4>Add text-to-speech to your WordPress website\u003C\u002Fh4>\n\u003Cp>WebsiteVoice allows you to easily turn your WordPress articles into high-quality speech audio for your audience to listen while they’re busy multitasking or on the go.\u003C\u002Fp>\n\u003Cp>Allow the Artificial Intelligence voices of WebsiteVoice to read your articles. Increase user engagement and accessibility for your WordPress blog.\u003C\u002Fp>\n\u003Cp>PS: You’ll need a \u003Ca href=\"https:\u002F\u002Fwebsitevoice.com\u002Flogin\" rel=\"nofollow ugc\">WebsiteVoice.com token\u003C\u002Fa> to use it. Tokens are completely free for the first days, then you will have to upgrade to keep using the service.\u003C\u002Fp>\n","WebsiteVoice allows you to easily turn your WordPress articles into high-quality speech audio for your audience to listen while they’re busy multitask &hellip;",300,32243,50,6,"2025-11-28T04:48:00.000Z","4.5","5.4",[78,23,24,64],"speech","https:\u002F\u002Fwebsitevoice.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsitevoice.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":27,"downloaded":89,"rating":90,"num_ratings":91,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":95,"tags":96,"homepage":15,"download_link":98,"security_score":99,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"say-it","Say It!","4.0.1","dadipaq","https:\u002F\u002Fprofiles.wordpress.org\u002Fdadipaq\u002F","\u003Cp>Say It! allows you to easily turn parts of your WordPress articles into audio speech.\u003Cbr \u002F>\nThe plugin is using modern HTML5 Speech Synthesis and doesn’t require any subscriptions or service, install it, enjoy it!\u003C\u002Fp>\n\u003Cp>Once installed, you just need to wrap any content between [sayit] shortcode. Once done, your users can simply click on the text to make it speak.\u003C\u002Fp>\n\u003Cp>Want better quality ? Say It! now offers Google Cloud TTS and Amazon Polly compatibility !\u003C\u002Fp>\n\u003Ch4>Parameters (for HTML5 Speech)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>lang – Use a language different from the default one\u003C\u002Fli>\n\u003Cli>speed – speed of speech (recommanded between 0.5 and 1.5)\u003C\u002Fli>\n\u003Cli>block – set to “1” to make it work on multiple paragraphs at once\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Parameters (for Google TTS)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>lang – Use a language different from the default one\u003C\u002Fli>\n\u003Cli>block – set to “1” to make it work on multiple paragraphs at once\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Parameters (for Amazon Polly)\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>block – set to “1” to make it work on multiple paragraphs at once\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Exemple\u003C\u002Fh4>\n\u003Cp>[sayit block=”1″ lang=”en-GB” speed=”1″]\u003Cbr \u002F>\nHello I am the queen\u003Cbr \u002F>\nAnd I talk for two paragraphs long\u003Cbr \u002F>\n[\u002Fsayit]\u003C\u002Fp>\n","Text to speech plugin helping your website easily say something !",7831,84,11,"2021-11-12T11:36:00.000Z","5.8.13","5.0.0","7.4.0",[57,97,23,58,24],"text-to-audio","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsay-it.4.0.1.zip",85,{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":27,"downloaded":108,"rating":109,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":76,"tags":114,"homepage":116,"download_link":117,"security_score":99,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"spoken-word","Spoken Word","1.0.1","Weston Ruter","https:\u002F\u002Fprofiles.wordpress.org\u002Fwestonruter\u002F","\u003Cp>Add text-to-speech (TTS) to content, with playback controls, read-along highlighting, multi-lingual support, and settings for rate, pitch, and voice.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Uses local text-to-speech engine in user’s browser. Directly interfaces with the \u003Ccode>speechSynthesis\u003C\u002Fcode> browser API. Zero external requests or dependencies.\u003C\u002Fli>\n\u003Cli>Words are selected\u002Fhighlighted as they are being spoken to allow you to read along.\u003C\u002Fli>\n\u003Cli>Skips speaking elements that should not be read, including footnote superscripts (the \u003Ccode>sup\u003C\u002Fcode> element).\u003C\u002Fli>\n\u003Cli>Pauses of different length added are between headings versus paragraphs.\u003C\u002Fli>\n\u003Cli>Controls remain in view during playback, with each the current text being spoken persistently being scrolled into view. (Requires browser support for \u003Ccode>position:sticky\u003C\u002Fcode>.)\u003C\u002Fli>\n\u003Cli>Back\u002Fforward controls allow you to skip to the next paragraph; when not speaking, the next paragraph to read will be selected entirely.\u003C\u002Fli>\n\u003Cli>Select text to read from that point; click on text during speech to immediately change position.\u003C\u002Fli>\n\u003Cli>Multi-lingual support, allowing embedded text with \u003Ccode>[lang]\u003C\u002Fcode> attribute to be spoken by the appropriate voice (assuming the user has it installed).\u003C\u002Fli>\n\u003Cli>Settings for changing the default voice (for each language), along with settings for the rate of speech and its pitch. (Not supported by all engines.) Changes can be made while speaking.\u003C\u002Fli>\n\u003Cli>Hit escape to pause during playback.\u003C\u002Fli>\n\u003Cli>Voice preferences are persistently stored in \u003Ccode>localStorage\u003C\u002Fcode>, with changes synced across windows (of a given site).\u003C\u002Fli>\n\u003Cli>Ability to use JS in standalone manner (such as in bookmarklet).\u003C\u002Fli>\n\u003Cli>Known to work in the latest desktop versions of Chrome, Firefox, and Safari. (Tested on OSX.) It does not work reliably in mobile\u002Ftouch browsers on Android or iOS, apparently due both to the (still experimental) \u003Ccode>speechSynthesis\u003C\u002Fcode> API not being implemented well enough on those systems and\u002For programmatic range selection does not work the same way as on desktop. For these reasons, the functionality is disabled by default on mobile operating systems.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwestonruter.github.io\u002Fspoken-word\u002Ftest\u002Fexample.html\" rel=\"nofollow ugc\">Try it out\u003C\u002Fa> on standalone example with some test content.\u003C\u002Fp>\n\u003Ch4>Theme Config\u003C\u002Fh4>\n\u003Cp>The settings for Spoken Word are presented in an HTML5 \u003Ccode>dialog\u003C\u002Fcode> element. For browsers that do not yet support this feature, the plugin bundles the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGoogleChrome\u002Fdialog-polyfill\" rel=\"nofollow ugc\">dialog-polyfill\u003C\u002Fa>. The polyfill is only included if it is detected the browser does not support \u003Ccode>dialog\u003C\u002Fcode> natively. The inclusion of the polyfill can be disabled by adding the following to your theme or plugin:\u003C\u002Fp>\n\u003Cpre>\nadd_filter( 'spoken_word_include_dialog_polyfill', '__return_false' );\n\u003C\u002Fpre>\n\u003Cp>For themes that have a sticky header (such as the nav menu in Twenty Seventeen) you may need to add some additional CSS to ensure that the sticky-positioned playback controls do not get hidden behind the sticky header. For example in Twenty Seventeen, you can add the following to the Custom CSS in the Customizer:\u003C\u002Fp>\n\u003Cpre>\n@media screen and (min-width: 782px) {\n    body:not(.admin-bar) .spoken-word--active {\n        top: calc( 0.5em + 70px );\n    }\n    body.admin-bar .spoken-word--active {\n        top: calc( 0.5em + 32px + 70px );\n    }\n}\n\u003C\u002Fpre>\n\u003Ch4>Internals\u003C\u002Fh4>\n\u003Cp>A bookmarklet can be used to load the Spoken Word functionality into any site, even non-WordPress sites where the plugin is not installed. The key is to use the appropriate \u003Ccode>contentSelector\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\n( () => {\n    const link = document.createElement( 'link' );\n    link.rel = 'stylesheet';\n    link.href = 'https:\u002F\u002Funpkg.com\u002Fspoken-word\u002Fcss\u002Fstyle.css';\n    document.head.appendChild( link );\n\n    const script = document.createElement( 'script' );\n    script.src = 'https:\u002F\u002Funpkg.com\u002Fspoken-word\u002Fdist\u002Fspoken-word.js';\n    script.addEventListener( 'load', () => {\n        spokenWord.initialize( {\n            contentSelector: [ \u002F* 👈 Amend as desired. *\u002F\n                '.hentry',\n                '.entry-content',\n                '.h-entry',\n                '.e-content',\n                '[itemprop=\"articleBody\"]',\n            ].join( ', ' )\n        } );\n    } );\n    document.head.appendChild( script );\n} )();\n\u003C\u002Fpre>\n\u003Cp>The \u003Ccode>spokenWord.initialize()\u003C\u002Fcode> function takes an object as its argument which can have the following properties:\u003C\u002Fp>\n\u003Cpre>\n * @param {string}  contentSelector         - CSS Selector to find the elements for speaking.\n * @param {Element} rootElement             - Root element within which to look for content.\n * @param {Object}  chunkifyOptions         - Options passed into chunkify.\n * @param {boolean} useDashicons            - Whether to use Dashicons.\n * @param {Object}  defaultUtteranceOptions - Default utterance options when none are supplied from localStorage.\n\u003C\u002Fpre>\n\u003Cp>The dialog and the controls are rendered using \u003Ca href=\"https:\u002F\u002Fpreactjs.com\u002F\" rel=\"nofollow ugc\">Preact\u003C\u002Fa>. For a list of all the modules used by this plugin, see the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwestonruter\u002Fspoken-word\u002Fblob\u002Fmaster\u002Fpackage.json\" rel=\"nofollow ugc\">package.json\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin is \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwestonruter\u002Fspoken-word\" rel=\"nofollow ugc\">developed on GitHub\u003C\u002Fa> where the source can be viewed. Please \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fwestonruter\u002Fspoken-word\u002Fissues\" rel=\"nofollow ugc\">report issues\u003C\u002Fa> there. Pull requests welcome. The \u003Ccode>spoken-word\u003C\u002Fcode> package is also \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fspoken-word\" rel=\"nofollow ugc\">published on npm\u003C\u002Fa>.\u003C\u002Fp>\n","Add text-to-speech (TTS) to content, with playback controls, read-along highlighting, multi-lingual support, and settings for rate, pitch, and voice.",6111,94,7,"2018-01-21T22:22:00.000Z","4.9.29","4.7",[57,115,23,58,24],"speech-synthesis","https:\u002F\u002Fgithub.com\u002Fwestonruter\u002Fspoken-word","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspoken-word.1.0.1.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":126,"downloaded":127,"rating":28,"num_ratings":28,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":15,"tags":131,"homepage":133,"download_link":134,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":62},"listen2it","Listen2It – Text-to-speech audio article","1.0.3","Listen2It","https:\u002F\u002Fprofiles.wordpress.org\u002Flisten2it\u002F","\u003Cp>Listen2It helps you convert your articles and blog posts into audio versions instantly and with zero additional effort using neural-network based lifelike voices in 145+ languages. Simply sign up for a free account and install this WordPress plugin to distribute and publish your content in audio versions on your website\u002Fblog and across all popular podcasting platforms.\u003C\u002Fp>\n\u003Cp>With 500+ voice styles across 145+ languages and advanced voice customization capabilities, you can create your unique brand of voice within minutes. Use our fully customizable SEO friendly players to create an “on-brand” voice experience for your users.\u003C\u002Fp>\n\u003Cp>All this with a free account. No credit card is required.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why Add Audio to Your Blog?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Modern audiences are multi-tasking and mobile. Whether they’re commuting, working, cooking, or relaxing – they prefer listening over reading. Audio content lets you reach your audience wherever they are, in the format they prefer.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>According to NPR & Edison Research, nearly 2\u002F3 of consumers prefer listening to reading.\u003C\u002Fli>\n\u003Cli>Audio articles boost engagement, time-on-site, and content recall.\u003C\u002Fli>\n\u003Cli>Stand out in the crowded content landscape with a unique “voice-first” experience.\u003C\u002Fli>\n\u003Cli>Offer an inclusive, accessible format for visually impaired or on-the-go users.\u003C\u002Fli>\n\u003Cli>Add audio as a value-added service to grow subscribers and loyalty.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>So go ahead, grow your audience with audio. It’s easy!\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Listen2It Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>500+ Voice Styles across 145+ Languages. See our full list of languages  \u003C\u002Fli>\n\u003Cli>High-quality lifelike voices using advanced neural-network engine\u003C\u002Fli>\n\u003Cli>Instant audio generation. No extra effort, you focus on creating content and we will do everything audio automatically. \u003C\u002Fli>\n\u003Cli>Create your own audio brand by customizing advanced voice parameters like speed, volume, pitch, timbre, style etc. \u003C\u002Fli>\n\u003Cli>Fully customizable SEO friendly players in a variety of layouts including inline, static and minimized. Mobile friendly.\u003C\u002Fli>\n\u003Cli>Inbuilt audio hosting on fast global CDN servers\u003C\u002Fli>\n\u003Cli>Advanced audio analytics to see how your audience is interacting with audio content\u003C\u002Fli>\n\u003Cli>Publish your audio content as a podcast on iTunes, Google Podcasts, Spotify and all leading podcast networks  \u003C\u002Fli>\n\u003Cli>Increase your earnings with audio advertising\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Convert Your Blog into a Podcast\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>With Listen2It you can easily convert your blog or website into a podcast. Simply enable the podcast RSS Feed in your Listen2It account. Manually select which audio articles are published or automatically publish them all.\u003C\u002Fp>\n\u003Cp>Distribute your content over iTunes, Spotify, Google Podcasts and other major podcast platforms and get access to millions of podcast listeners you were missing out on before.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Free Service\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>You can get started with a free forever Listen2It. The free account comes with 5 new audio articles every month. We keep it free by being ad-supported.\u003C\u002Fp>\n\u003Cp>You can switch to our paid plans to get access to a host of advanced features, more monthly articles, no advertising. We even support multiple websites\u002Fblogs out of the box.\u003C\u002Fp>\n","Listen2It turns your articles and blog posts into clear, natural-sounding audio in seconds, using lifelike voices in 145+ languages.",80,3428,"2025-11-19T11:34:00.000Z","6.8.5","5.0",[57,119,132,23,24],"podcast","https:\u002F\u002Fwww.getlisten2it.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flisten2it.1.0.3.zip",{"attackSurface":136,"codeSignals":287,"taintFlows":392,"riskAssessment":440,"analyzedAt":447},{"hooks":137,"ajaxHandlers":246,"restRoutes":270,"shortcodes":271,"cronEvents":286,"entryPointCount":209,"unprotectedCount":28},[138,144,149,153,156,159,163,168,173,177,181,184,188,193,197,199,203,206,210,213,215,217,219,224,228,232,236,240,244],{"type":139,"name":140,"callback":141,"file":142,"line":143},"filter","template_include","speaker_lite_page_template","speaker-lite.php",230,{"type":145,"name":146,"callback":147,"file":142,"line":148},"action","plugins_loaded","setup",361,{"type":145,"name":150,"callback":151,"file":152,"line":72},"admin_enqueue_scripts","admin_scripts","src\\Merkulove\\SpeakerLite\\AdminScripts.php",{"type":145,"name":150,"callback":154,"file":155,"line":72},"admin_styles","src\\Merkulove\\SpeakerLite\\AdminStyles.php",{"type":145,"name":157,"callback":158,"file":155,"line":109},"admin_body_class","add_admin_class",{"type":145,"name":150,"callback":160,"file":161,"line":162},"add_admin_scripts","src\\Merkulove\\SpeakerLite\\AssignmentsTab.php",76,{"type":145,"name":164,"callback":165,"file":166,"line":167},"admin_notices","show_admin_messages","src\\Merkulove\\SpeakerLite\\CheckCompatibility.php",162,{"type":145,"name":169,"callback":170,"file":171,"line":172},"elementor\u002Feditor\u002Fbefore_enqueue_styles","editor_styles","src\\Merkulove\\SpeakerLite\\Elementor.php",55,{"type":145,"name":174,"callback":175,"file":171,"line":176},"elementor\u002Fwidgets\u002Fwidgets_registered","register_widgets",83,{"type":145,"name":178,"callback":179,"file":180,"line":72},"wp_enqueue_scripts","enqueue_scripts","src\\Merkulove\\SpeakerLite\\FrontScripts.php",{"type":145,"name":178,"callback":182,"file":183,"line":72},"enqueue_styles","src\\Merkulove\\SpeakerLite\\FrontStyles.php",{"type":139,"name":185,"callback":186,"priority":91,"file":183,"line":187},"wp_audio_shortcode_library","__return_empty_string",56,{"type":145,"name":189,"callback":190,"file":191,"line":192},"add_meta_boxes","meta_box","src\\Merkulove\\SpeakerLite\\MetaBox.php",47,{"type":139,"name":194,"callback":186,"priority":91,"file":195,"line":196},"admin_footer_text","src\\Merkulove\\SpeakerLite\\PluginHelper.php",73,{"type":139,"name":198,"callback":186,"priority":91,"file":195,"line":162},"update_footer",{"type":145,"name":200,"callback":201,"priority":202,"file":195,"line":176},"in_admin_header","remove_all_notices",1000,{"type":145,"name":164,"callback":204,"file":195,"line":205},"key_notice",86,{"type":139,"name":207,"callback":208,"priority":209,"file":195,"line":36},"plugin_row_meta","add_row_meta",10,{"type":145,"name":150,"callback":211,"file":195,"line":212},"remove_copyrights",98,{"type":145,"name":164,"callback":204,"file":195,"line":214},123,{"type":145,"name":150,"callback":154,"file":195,"line":216},188,{"type":145,"name":150,"callback":151,"file":195,"line":218},191,{"type":145,"name":220,"callback":221,"file":222,"line":223},"admin_menu","add_admin_menu","src\\Merkulove\\SpeakerLite\\Settings.php",354,{"type":145,"name":225,"callback":226,"file":222,"line":227},"admin_init","settings_init",355,{"type":145,"name":229,"callback":229,"file":230,"line":231},"before_delete_post","src\\Merkulove\\SpeakerLite\\SpeakerCaster.php",65,{"type":139,"name":233,"callback":234,"file":230,"line":235},"the_title","add_player_to_title",782,{"type":139,"name":237,"callback":238,"file":230,"line":239},"the_content","add_player_to_content",792,{"type":145,"name":241,"callback":242,"file":243,"line":172},"vc_before_init","load_elements","src\\Merkulove\\SpeakerLite\\WPBakery.php",{"type":145,"name":150,"callback":154,"file":243,"line":245},58,[247,254,257,260,263,267],{"action":248,"nopriv":249,"callback":250,"hasNonce":251,"hasCapCheck":249,"file":252,"line":253},"reset_settings",false,"ajax_reset_settings",true,"src\\Merkulove\\SpeakerLite\\DeveloperBoard.php",53,{"action":255,"nopriv":249,"callback":255,"hasNonce":251,"hasCapCheck":249,"file":230,"line":256},"gspeak",59,{"action":258,"nopriv":249,"callback":258,"hasNonce":251,"hasCapCheck":249,"file":230,"line":259},"remove_audio",62,{"action":261,"nopriv":249,"callback":261,"hasNonce":251,"hasCapCheck":249,"file":230,"line":262},"process_st",68,{"action":264,"nopriv":249,"callback":265,"hasNonce":251,"hasCapCheck":249,"file":230,"line":266},"get_st","get_st_ajax",71,{"action":268,"nopriv":249,"callback":268,"hasNonce":251,"hasCapCheck":249,"file":230,"line":269},"set_default_st",74,[],[272,275,278,281],{"tag":21,"callback":273,"file":274,"line":259},"speaker_shortcode","src\\Merkulove\\SpeakerLite\\Shortcodes.php",{"tag":276,"callback":277,"file":274,"line":231},"speaker-mute","speaker_mute_shortcode",{"tag":279,"callback":280,"file":274,"line":262},"speaker-break","speaker_break_shortcode",{"tag":282,"callback":283,"file":284,"line":285},"vce_speaker","vce_speaker_lite_render","src\\Merkulove\\SpeakerLite\\WPBakery\\elements\\Speaker\\speaker.wpbakery.php",31,[],{"dangerousFunctions":288,"sqlUsage":289,"outputEscaping":292,"fileOperations":209,"externalRequests":383,"nonceChecks":73,"capabilityChecks":384,"bundledLibraries":385},[],{"prepared":290,"raw":28,"locations":291},4,[],{"escaped":143,"rawEcho":293,"locations":294},43,[295,298,300,302,304,307,309,311,313,315,317,319,321,323,325,327,329,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,362,364,366,368,371,373,376,378,380,382],{"file":161,"line":296,"context":297},263,"raw output",{"file":161,"line":299,"context":297},328,{"file":161,"line":301,"context":297},1046,{"file":252,"line":303,"context":297},81,{"file":305,"line":306,"context":297},"src\\Merkulove\\SpeakerLite\\Elementor\\widgets\\Speaker\\speaker.elementor.php",134,{"file":222,"line":308,"context":297},117,{"file":222,"line":310,"context":297},274,{"file":222,"line":312,"context":297},277,{"file":222,"line":314,"context":297},278,{"file":222,"line":316,"context":297},282,{"file":222,"line":318,"context":297},299,{"file":222,"line":320,"context":297},302,{"file":222,"line":322,"context":297},303,{"file":222,"line":324,"context":297},307,{"file":222,"line":326,"context":297},308,{"file":222,"line":328,"context":297},311,{"file":222,"line":330,"context":297},312,{"file":222,"line":332,"context":297},316,{"file":222,"line":334,"context":297},317,{"file":222,"line":336,"context":297},473,{"file":222,"line":338,"context":297},480,{"file":222,"line":340,"context":297},487,{"file":222,"line":342,"context":297},494,{"file":222,"line":344,"context":297},502,{"file":222,"line":346,"context":297},517,{"file":222,"line":348,"context":297},523,{"file":222,"line":350,"context":297},529,{"file":352,"line":218,"context":297},"src\\Merkulove\\SpeakerLite\\simple_html_dom.php",{"file":352,"line":354,"context":297},196,{"file":230,"line":356,"context":297},664,{"file":230,"line":358,"context":297},673,{"file":230,"line":360,"context":297},676,{"file":230,"line":360,"context":297},{"file":230,"line":363,"context":297},914,{"file":230,"line":365,"context":297},929,{"file":230,"line":367,"context":297},1483,{"file":369,"line":370,"context":297},"src\\Merkulove\\SpeakerLite\\StatusTab.php",158,{"file":372,"line":306,"context":297},"src\\Merkulove\\SpeakerLite\\TabPostTypes.php",{"file":374,"line":375,"context":297},"src\\Merkulove\\SpeakerLite\\TabVoice.php",286,{"file":374,"line":377,"context":297},670,{"file":374,"line":379,"context":297},672,{"file":374,"line":381,"context":297},674,{"file":284,"line":245,"context":297},2,1,[386,389],{"name":387,"version":29,"knownCves":388},"DataTables",[],{"name":390,"version":29,"knownCves":391},"Guzzle",[],[393],{"entryPoint":394,"graph":395,"unsanitizedCount":14,"severity":439},"\u003CSpeakerCaster> (src\\Merkulove\\SpeakerLite\\SpeakerCaster.php:0)",{"nodes":396,"edges":432},[397,402,406,412,415,418,421,424,427],{"id":398,"type":399,"label":400,"file":230,"line":401},"n0","source","$_POST",1478,{"id":403,"type":404,"label":405,"file":230,"line":401},"n1","transform","→ part_speak()",{"id":407,"type":408,"label":409,"file":230,"line":410,"wp_function":411},"n2","sink","file_put_contents() [File Write]",204,"file_put_contents",{"id":413,"type":399,"label":400,"file":230,"line":414},"n3",1490,{"id":416,"type":404,"label":417,"file":230,"line":414},"n4","→ glue_audio()",{"id":419,"type":408,"label":409,"file":230,"line":420,"wp_function":411},"n5",103,{"id":422,"type":399,"label":400,"file":230,"line":423},"n6",1534,{"id":425,"type":404,"label":426,"file":230,"line":423},"n7","→ parse_post_content()",{"id":428,"type":408,"label":429,"file":230,"line":430,"wp_function":431},"n8","wp_remote_get() [SSRF]",468,"wp_remote_get",[433,434,435,436,437,438],{"from":398,"to":403,"sanitized":249},{"from":403,"to":407,"sanitized":249},{"from":413,"to":416,"sanitized":249},{"from":416,"to":419,"sanitized":249},{"from":422,"to":425,"sanitized":249},{"from":425,"to":428,"sanitized":249},"medium",{"summary":441,"deductions":442},"The speaker-lite v1.2.0 plugin exhibits a generally good security posture based on the provided static analysis. It demonstrates strong adherence to secure coding practices by utilizing prepared statements for all SQL queries and implementing nonce checks for its AJAX handlers. The plugin also benefits from a relatively small attack surface with no unprotected entry points identified.  However, a potential area of concern lies within the taint analysis, which revealed one flow with an unsanitized path. While not classified as critical or high severity in this instance, it indicates a weakness that could potentially be exploited if a malicious input is not properly handled.  Furthermore, the plugin's output escaping, while at 84%, leaves room for improvement as 16% of outputs may be unescaped.  The absence of any recorded vulnerabilities or CVEs is a positive indicator, suggesting a lack of publicly known weaknesses. Overall, speaker-lite v1.2.0 is a moderately secure plugin with a solid foundation, but the identified unsanitized path and less-than-perfect output escaping warrant attention for a more robust security profile.",[443,445],{"reason":444,"points":35},"Flow with unsanitized path identified",{"reason":446,"points":290},"Output escaping is not 100%","2026-03-16T22:22:22.259Z",{"wat":449,"direct":458},{"assetPaths":450,"generatorPatterns":453,"scriptPaths":454,"versionParams":455},[451,452],"\u002Fwp-content\u002Fplugins\u002Fspeaker-lite\u002Fassets\u002Fcss\u002Fspeaker.css","\u002Fwp-content\u002Fplugins\u002Fspeaker-lite\u002Fassets\u002Fjs\u002Fspeaker.js",[],[452],[456,457],"speaker-lite\u002Fassets\u002Fcss\u002Fspeaker.css?ver=","speaker-lite\u002Fassets\u002Fjs\u002Fspeaker.js?ver=",{"cssClasses":459,"htmlComments":462,"htmlAttributes":463,"restEndpoints":465,"jsGlobals":466,"shortcodeOutput":468},[460,461],"speaker-lite-player","speaker-lite-play-button",[],[464],"data-speaker-lite-id",[],[467],"speakerLiteSettings",[469],"[speaker-lite]"]