{"id":11054,"date":"2026-05-25T19:30:21","date_gmt":"2026-05-25T11:30:21","guid":{"rendered":"https:\/\/aeosub.com\/sangar-studio-readflow\/"},"modified":"2026-05-25T19:30:21","modified_gmt":"2026-05-25T11:30:21","slug":"sangar-studio-readflow","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/sangar-studio-readflow\/","title":{"rendered":"Sangar Studio ReadFlow"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/sangar-studio-readflow.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/sangarstudio\/\" target=\"_blank\" rel=\"noopener\">sangarstudio<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.2.1<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.8 \/ 7.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-25 11:24am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/sangar-studio-readflow\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Displays blog post reading times and generates premium AI voice audio narrations using OpenAI TTS with local caching.<\/div>\n<p><strong>Sangar Studio ReadFlow<\/strong> is a premium, high-fidelity WordPress plugin designed to elevate the user reading and auditory experience on your website. It calculates the reading time of your posts based on custom speed parameters and inserts a gorgeous, glassmorphic player widget that lets users listen to posts.<\/p>\n<p>By integrating directly with <strong>OpenAI&#8217;s state-of-the-art TTS models<\/strong>, <strong>Sangar Studio ReadFlow<\/strong> converts your blog content into natural, fluid, human-like voice recordings. It handles OpenAI&#8217;s character limitations gracefully by dividing long essays into sentence-aware blocks and stitching the audio binaries together seamlessly.<\/p>\n<p>To protect your budget and increase speed, <strong>Sangar Studio ReadFlow features a robust local caching system<\/strong>. It generates the voice file only once per post and caches it directly inside your server&#8217;s uploads directory. Every subsequent listener loads the audio instantly in a custom-designed web player.<\/p>\n<p>If no API Key is provided, or if the API suffers a network failure, the plugin automatically falls back to the <strong>Web Speech API SpeechSynthesis<\/strong>, providing free, zero-config native voice synthesis directly inside the reader&#8217;s browser.<\/p>\n<h3>Key Features<\/h3>\n<ul>\n<li><strong>Accurate Reading Time Indicator:<\/strong> Computes reading times based on custom Words Per Minute (WPM) settings.<\/li>\n<li><strong>Premium Custom HTML5 Player:<\/strong> Ditch the default browser audio bar. Features stylized play\/pause buttons, loading spinners, sound-wave animations, and draggable seek sliders.<\/li>\n<li><strong>OpenAI TTS Integration:<\/strong> Access six natural voices (Alloy, Echo, Fable, Onyx, Nova, Shimmer) with standard <code>tts-1<\/code> or high-definition <code>tts-1-hd<\/code> qualities.<\/li>\n<li><strong>Unlimited Text Length Chunking:<\/strong> Sentence-intelligent text-splitting bypasses API size caps for infinite post narration.<\/li>\n<li><strong>Smart Local Caching:<\/strong> Saves generated MP3s locally. Zero repetitive API billing overhead for repeat readers.<\/li>\n<li><strong>Auto Pre-Generation:<\/strong> Optional setting pre-renders post narration in the background as soon as you hit &#8220;Publish&#8221;.<\/li>\n<li><strong>Sleek Administration Panel:<\/strong> Manage credentials, customize accent colors, adjust reading formulas, check cache sizes, test voices with live playback, and flush files with one click.<\/li>\n<li><strong>Zero-Config Web Speech Fallback:<\/strong> Universal native voice narration fallback if AI models are disabled or run out of quota.<\/li>\n<li><strong>Adjustable Playback Velocity:<\/strong> Speed options (<code>0.8x<\/code>, <code>1.0x<\/code>, <code>1.2x<\/code>, <code>1.5x<\/code>, <code>2.0x<\/code>) for listeners on the go.<\/li>\n<li><strong>Direct MP3 Download Link:<\/strong> Give readers the option to take post narrations with them.<\/li>\n<\/ul>\n<h3>Privacy &amp; Third-Party Service Disclosure<\/h3>\n<p>This plugin integrates with and sends requests to a third-party service: <strong>OpenAI API<\/strong> (specifically the Text-to-Speech service).<\/p>\n<ul>\n<li><strong>What is sent:<\/strong> Only the plain text content of your published posts is transmitted to OpenAI&#8217;s servers to synthesize the voice.<\/li>\n<li><strong>What is NOT sent:<\/strong> No reader IP addresses, personal data, browser details, or cookies are sent to OpenAI.<\/li>\n<li><strong>Data Processing &amp; Storage:<\/strong> The audio generation is executed server-side. The compiled MP3 is saved locally on your self-hosted WordPress site inside <code>\/wp-content\/uploads\/sangar-studio-readflow\/<\/code>. No external CDN or tracking tags are embedded in the reader&#8217;s browser.<\/li>\n<li><strong>OpenAI Terms:<\/strong> For more details on data retention policies, please check the OpenAI Privacy Policy: https:\/\/openai.com\/policies\/privacy-policy<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Displays blog post reading times and generates premium AI voice audio narrations using OpenAI TTS with local caching.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[829,2012,1462,589,1594,555],"class_list":["post-11054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-accessibility","tag-ai-voice","tag-audio-player","tag-reading-time","tag-text-to-speech","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11054"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11054\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}