{"id":332772,"date":"2026-06-29T12:51:48","date_gmt":"2026-06-29T12:51:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beyondsky-text-to-voice\/"},"modified":"2026-06-29T12:51:27","modified_gmt":"2026-06-29T12:51:27","slug":"beyondsky-text-to-voice","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/beyondsky-text-to-voice\/","author":23523536,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"BeyondSky Text to Voice","header_author":"BeyondSky","header_description":"Adds a \"Convert text to voice\" button to the post editor that narrates the article with AI text-to-speech, stores the MP3 in the Media Library, and shows an audio player on the article.","assets_banners_color":"8b9aef","last_updated":"2026-06-29 12:51:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/beyondsky.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":13,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"beyondskyapp","date":"2026-06-29 12:51:27"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3590100,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3590100,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3590100,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3590100,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The \"Convert text to voice (MP3)\" button in the post editor sidebar.","2":"The generated audio player shown on the published article.","3":"The settings screen (API key, voice, model, word limit)."}},"plugin_section":[],"plugin_tags":[1953,452,58570,16722,1449],"plugin_category":[34,50],"plugin_contributors":[269467],"plugin_business_model":[],"class_list":["post-332772","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-audio","plugin_tags-narration","plugin_tags-text-to-speech","plugin_tags-tts","plugin_category-accessibility","plugin_category-media","plugin_contributors-beyondskyapp","plugin_committers-beyondskyapp"],"banners":{"banner":"https:\/\/ps.w.org\/beyondsky-text-to-voice\/assets\/banner-772x250.png?rev=3590100","banner_2x":"https:\/\/ps.w.org\/beyondsky-text-to-voice\/assets\/banner-1544x500.png?rev=3590100","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beyondsky-text-to-voice\/assets\/icon-128x128.png?rev=3590100","icon_2x":"https:\/\/ps.w.org\/beyondsky-text-to-voice\/assets\/icon-256x256.png?rev=3590100","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Text to Voice adds a <strong>\"Convert text to voice (MP3)\"<\/strong> button to the WordPress post editor. One click sends the article text to an AI text\u2011to\u2011speech service, saves the resulting MP3 in your Media Library, and shows an audio player at the top of the published article so visitors can listen instead of read.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>One\u2011click narration from the post edit screen.<\/li>\n<li>Choose your AI voice provider \u2014 <strong>Google Cloud<\/strong>, <strong>Microsoft Azure<\/strong> and <strong>ElevenLabs<\/strong> built in, plus a <code>bsktv_providers<\/code> filter so developers can add their own.<\/li>\n<li>MP3 is stored in the WordPress Media Library (no third\u2011party hosting).<\/li>\n<li>Choose where the player appears: above the article, below it, after the first paragraph, or place it anywhere with the <code>[bsktv_player]<\/code> shortcode.<\/li>\n<li>Choose from three player designs \u2014 Minimal, Card, or Accent \u2014 with a customizable label and accent colour.<\/li>\n<li>Choose your default voice and model, and cap the narration to the first N words to control cost.<\/li>\n<li>Long posts are split into chunks and recombined automatically.<\/li>\n<li>Works with any public post type that uses the editor.<\/li>\n<\/ul>\n\n<p><strong>Lightweight &amp; theme\u2011friendly.<\/strong> The player inherits your theme's fonts (no extra web\u2011fonts), keeps the native audio control for cross\u2011browser reliability, scopes all styles to <code>.bsktv-*<\/code> in one small inline stylesheet loaded only on single posts, and themes all three designs from a single accent colour.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin sends data to a third\u2011party AI text\u2011to\u2011speech service <strong>only when you click \"Convert text to voice\"<\/strong> \u2014 it sends the post's text content and your API key to the provider you selected in the settings, and receives an MP3 in return. No data is sent otherwise. An account and API key with the chosen provider are required, and usage is billed by that provider.<\/p>\n\n<p>Supported providers:<\/p>\n\n<ul>\n<li><strong>Google Cloud Text-to-Speech<\/strong> \u2014 API <code>https:\/\/texttospeech.googleapis.com<\/code>. Terms: https:\/\/cloud.google.com\/terms \u2014 Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<li><strong>Microsoft Azure Speech<\/strong> \u2014 API <code>https:\/\/&lt;region&gt;.tts.speech.microsoft.com<\/code>. Terms: https:\/\/azure.microsoft.com\/support\/legal\/ \u2014 Privacy Policy: https:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<li><strong>ElevenLabs<\/strong> \u2014 API <code>https:\/\/api.elevenlabs.io<\/code>. Terms of Use: https:\/\/elevenlabs.io\/terms-of-use \u2014 Privacy Policy: https:\/\/elevenlabs.io\/privacy-policy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Settings \u2192 Text to Voice<\/strong>.<\/li>\n<li>Choose your <strong>Voice provider<\/strong>, then enter its <strong>API key<\/strong> and a default <strong>Voice ID<\/strong>. Optionally set the Model ID and a word limit.<\/li>\n<li>Edit a post, open the <strong>Text to Voice<\/strong> box in the sidebar, and click <strong>Convert text to voice (MP3)<\/strong>.<\/li>\n<li>The MP3 is generated, added to the Media Library, and a player appears on the published article.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20ai%20providers%20are%20supported%3F\"><h3>Which AI providers are supported?<\/h3><\/dt>\n<dd><p>Google Cloud, Microsoft Azure and ElevenLabs out of the box, and developers can add more via the <code>bsktv_providers<\/code> filter. You use your own provider API key, and generation is billed by that provider. Google and Azure both offer large recurring free tiers; ElevenLabs has the most lifelike voices.<\/p><\/dd>\n<dt id=\"where%20are%20the%20mp3%20files%20stored%3F\"><h3>Where are the MP3 files stored?<\/h3><\/dt>\n<dd><p>In your WordPress Media Library (your own server). Re\u2011generating a post replaces its previous narration.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20how%20much%20of%20the%20article%20is%20narrated%3F\"><h3>Can I limit how much of the article is narrated?<\/h3><\/dt>\n<dd><p>Yes. Set a <strong>Word limit<\/strong> in the settings (for example 1000). Set it to 0 for no limit.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20supported%3F\"><h3>Which languages are supported?<\/h3><\/dt>\n<dd><p>The default model <code>eleven_flash_v2_5<\/code> is fast, low\u2011cost and supports 32 languages. For the most lifelike voice you can switch the Model ID to <code>eleven_multilingual_v2<\/code> in the settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Turn any article into a spoken MP3 with AI text\u2011to\u2011speech, stored in the Media Library and played with an audio player on the post.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/332772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=332772"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beyondskyapp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=332772"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=332772"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=332772"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=332772"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=332772"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=332772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}