=== SoftGM AI Audio - Smart Text to Speech ===
Contributors: devbyeh, softgm
Donate link: https://softgm.ir
Tags: text to speech, tts, ai audio, elementor, audio player
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.6.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Convert articles and pages into studio-quality audio with interactive word highlighting, Elementor support, and automated SEO Audio Schema.

== Description ==

**SoftGM AI Audio** converts your WordPress articles, pages, and custom post types into natural, studio-quality speech (Text-to-Speech) to enhance user engagement, dwell time, and accessibility.

The plugin provides dynamic word-level highlighting with 60 FPS synchronization. As each word is spoken, the corresponding text in your article is smoothly highlighted in real-time, and the page gently auto-scrolls to the sentence currently being read.

### Key Features:
* **Real-time Synchronized Highlighting**: Sub-second calculation of word offsets ensures accurate alignment between audio playback and article text.
* **Interactive Player (Click-to-Seek)**: Readers can jump directly to any paragraph or sentence in the audio by clicking on the desired word.
* **Page Builder Support**: Compatible with Elementor, the Gutenberg block editor, and classic themes.
* **SEO Audio Schema**: Injects valid `AudioObject` and `Article` Schema.org JSON-LD markup to help search engines index your spoken content.
* **Non-blocking Architecture**: Lightweight and asynchronously loaded without impacting site speed or Core Web Vitals.
* **Customizable Audio Player**: Adjust colors, positions, badges, and animations directly from the WordPress administration panel.

== External Services ==

This plugin relies on external cloud services provided by SoftGM to perform artificial intelligence text-to-speech synthesis, payment/billing verification, and support requests. Below are details regarding the external services utilized by this plugin:

1. **SoftGM Text-to-Speech (TTS) Cloud Service**
   * **Service Provider**: SoftGM (https://softgm.ir)
   * **Service Endpoint**: https://tts.softgm.ir
   * **Purpose**: Performs neural text-to-speech conversion, extracts precise word-level timestamps (look-ahead sync), verifies generation task statuses, downloads synthesized audio files and timestamp chunks, and retrieves account balance details.
   * **Data Sent**: Post ID, post title, site title (`get_bloginfo('name')`), post permalink, post raw textual content, website domain host (`home_url()`), webhook callback URL with authorization token, and administrator API key.
   * **When Data is Sent**: When an administrator or editor clicks to generate or regenerate audio for a post, when checking synthesis queue status, or when viewing account key details in the plugin settings.
   * **Terms of Service**: https://softgm.ir/terms/
   * **Privacy Policy**: https://softgm.ir/privacy/

2. **SoftGM Support & Ticketing Service**
   * **Service Provider**: SoftGM (https://softgm.ir)
   * **Service Endpoint**: https://tts.softgm.ir
   * **Purpose**: Allows website administrators to submit support inquiries and receive responses directly inside the WordPress dashboard.
   * **Data Sent**: Support ticket subject, message content, and API key.
   * **When Data is Sent**: Only when an administrator explicitly submits or replies to a support ticket from the admin settings page.
   * **Terms of Service**: https://softgm.ir/terms/
   * **Privacy Policy**: https://softgm.ir/privacy/

3. **SoftGM Account Registration, Documentation & Credit Recharge**
   * **Service Provider**: SoftGM (https://softgm.ir)
   * **Service Endpoint**: https://softgm.ir
   * **Purpose**: Provides links for administrators to register for an API key (https://softgm.ir/tts/get-api-key/), recharge synthesis credit balance (https://softgm.ir/tts/recharge/), or view online documentation and optimization guides (https://softgm.ir/tts/help/).
   * **Data Sent**: Website domain host (`home_url()`) passed as a URL query parameter when opening the external link in a new browser tab. The WordPress plugin does not collect, process, or transmit any credit card, banking, or payment receipt details; all financial checkout operations occur externally on the secure SoftGM website.
   * **When Data is Sent**: Only when an administrator explicitly clicks the "Get API Key", "Recharge Balance", or "Help & Documentation" links in the plugin settings page.
   * **Terms of Service**: https://softgm.ir/terms/
   * **Privacy Policy**: https://softgm.ir/privacy/

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install the plugin zip file directly via **Plugins > Add New** in WordPress.
2. Activate the plugin through the **Plugins** screen in WordPress.
3. Navigate to **صوتی‌ساز سافت جی‌ام** in the main WordPress sidebar.
4. Enter your API key (if you do not have one, follow the link to obtain an API key).
5. Configure your preferred voice engine and player layout settings.

== Frequently Asked Questions ==

= Where can I find documentation and optimization guides? =
Detailed tutorials, troubleshooting guides, and recommendations for caching plugins (LiteSpeed Cache, WP Rocket) are available at https://softgm.ir/tts/help/

= Do I need an API key to use this plugin? =
Yes. Heavy neural AI speech synthesis, Whisper alignment models, and audio chunking algorithms run on the SoftGM cloud infrastructure. An active API key is required to connect to the synthesis service.

= Is the API key bound to my domain? =
Yes. For security and quota management, each API key is bound to the domain registered during setup.

= Are charges incurred again if an article is edited? =
No. The plugin includes multi-layer caching. Reprocessing only occurs if significant textual modifications are detected or if you explicitly click the regenerate button.

= Is this plugin compatible with Elementor? =
Yes. A dedicated Elementor widget is provided, along with automated content extraction for Elementor-designed pages.


== Screenshots ==

1. Floating audio player with real-time word highlighting inside an article.
2. Admin dashboard for configuring voice engines, previewing voices, and monitoring status.
3. Appearance customizer for floating player colors, positions, and styling.

== Changelog ==

= 2.6.0 =
* پشتیبانی کامل از معماری چند دامنه‌ای (Multi-Domain) در یک حساب کاربری با کلیدهای API مجزا و ایزوله.
* افزودن اندپوینت وبهوک احراز اصالت و اعتبارسنجی مالکیت دامنه (Domain Verification Handshake: /wp-json/ai-audio/v1/verify-domain).
* سیستم همگام‌سازی امن کلید اختصاصی دامنه و اتصال مستقیم به سرویس متمرکز سافت جی‌ام.
* ارتقای کامل مکانیزم احراز هویت، ثبت‌نام و بازیابی رمز عبور با کد تایید ایمیلی.
* بهینه‌سازی بارگذاری پلیر و هماهنگی کامل با نگارش بین‌المللی افزونه.

= 2.5.6 =
* بازگردانی و بازطراحی دقیق کارت پلیر شناور به ساختار تمیز، استاندارد و فشرده اصلی (مطابق با طراحی اصیل).
* اصلاح کامل نمایش و عدم برش خوردن عنوان نشان‌های صوتی (Badges) در تمام صفحات آرشیو، دسته‌بندی و ویجت‌های المنتور.
* تغییر نام رسمی فایل‌ها و ساختار پکیج افزونه به سافت جی‌ام (softgm-ai-audio).
* رفع اختلال تراز افقی تایتل مقالات در تم‌های دارای Flexbox.
* حل کامل پیش‌نمایش صدای پاییز با برند سافت جی‌ام و رفع لود صدای موتور حرفه‌ای.

= 2.5.5 =
* رفع اختلال تراز افقی تایتل مقالات در المنتور و تم‌های دارای چیدمان Flexbox و انتقال استاندارد نشان به بالای کل کادر عنوان.
* طراحی فوق‌فشرده (Mini Wave Badge) اختصاصی برای سایدبارها و تصاویر بندانگشتی جهت جلوگیری از برش خوردن متن نشان صوتی.
* اعمال بدون واسطه تنظیمات روشن/خاموش نشان در سایدبار، آرشیو و صفحه تکی هم در رندر PHP و هم در اسکنر فرانت‌اند.
* حل کامل لود صدای موتور حرفه‌ای با فال‌بک هوشمند ابری و همگام‌سازی پیش‌نمایش تمام گویندگان.
* به‌روزرسانی پیش‌نمایش صدای پاییز در موتور اولترا با برند سافت جی‌ام (SoftGM).
* پاکسازی خودکار کش‌های سرور و مرورگر هنگام تغییر تنظیمات ظاهر و نشان صوتی.

= 2.5.3 =
* بهینه‌سازی نوار پلیر استیکی و شناور: انتقال گزینه‌های رنگ، هایلایت، دنبال کردن متن و جزئیات سرعت به منوی پاپ‌اور/آکاردئونی شیشه‌ای و مدرن جهت جلوگیری از شلوغی و اشغال فضا در نوار.
* افزودن دکمه نشانگر سرعت سریع روی نوار با قابلیت تغییر چرخه سرعت با یک کلیک.
* بهبود چینش و توازن المان‌ها در پلیر نواری و ریسپانسیو کامل موبایل.

= 2.5.2 =
* اضافه شدن ۲ مدل پلیر جدید: پلیر نواری چسبان (Sticky Bar در بالا یا پایین صفحه) و پلیر کپسول شناور (Floating Pill).
* اضافه شدن قابلیت تم دارک (Dark Mode) اختصاصی برای پلیر با تشخیص هوشمند تم قالب سایت و امکان سوئیچ دستی کاربر.
* اضافه شدن دکمه‌های پرش ۱۰ ثانیه‌ای به عقب و جلو (-10s / +10s).
* رفع کامل مشکل عدم ذخیره‌سازی وضعیت غیرفعال‌سازی نشان صوتی (Audio Badge) در تنظیمات وردپرس.

= 2.5.1 =
* رفع مشکل قفل شدن و عدم امکان تغییر مجدد رنگ پلیر و هایلایت متن پس از انتخاب اولیه.
* بهینه‌سازی دینامیک استایل‌های Zero-FOUC برای تعویض بلادرنگ تم و پالت رنگی.
* اضافه کردن Event Delegation برای واکنش سریع‌تر و پایدارتر به کلیک روی دکمه‌های رنگی.

= 2.5.0 =
* رفع مشکل کش طولانی‌مدت تیکت‌ها و به‌روزرسانی آنی لیست تیکت‌ها پس از ارسال یا دریافت پاسخ.
* افزودن دکمه بروزرسانی زنده لیست تیکت‌ها بدون نیاز به رفرش کامل صفحه.
* بارگذاری خودکار و زنده لیست تیکت‌ها هنگام ورود به تب پشتیبانی.
* افزایش مهلت زمانی ارتباط با سرور برای دریافت پایدار تیکت‌ها در شبکه‌های مختلف.

= 2.4.9 =
* امکان پیوست تصویر در ارسال تیکت و پاسخ‌های گفتگو در تیکت‌های پشتیبانی.
* نمایش پیش‌نمایش تصویر پیوست قبل از ارسال و دکمه حذف پیوست.
* امکان مشاهده و کلیک روی تصاویر پیوست در تاریخچه گفتگوهای تیکت.
* بهینه‌سازی فرم‌ها و اعتبارسنجی امن تصاویر پیوست.

= 2.4.8 =
* تنظیم جداگانه نمایش بج صوتی در سایدبار، برگه مقاله تکی و برگه‌های آرشیو.
* اصلاح موقعیت بج صوتی در داخل نوشته و قرارگیری بالاتر از عنوان اصلی با طراحی ریسپانسیو.
* رفع مشکل اورفلو و چیدمان بج صوتی در لیست‌های کناری و بندانگشتی‌ها.
* صفحه‌بندی کامل و جستجو در لیست صفحات پربازدید بخش آمار و تحلیل.
* رفع خطای دیتابیس در ثبت تیکت‌های پشتیبانی با مقدار پیش‌فرض وضعیت.
* بهینه‌سازی لود رنگ پلیر از حافظه محلی و رفع پرش رنگ (Zero-FOUC).

= 2.4.4 =
* تنظیم موتور صوتی اولترا (بالاترین کیفیت استودیویی هوش مصنوعی) به عنوان موتور پیش‌فرض سراسری سیستم و هدیه تست رایگان.
* بارگذاری کاملاً پویا و زنده لیست موتورهای صوتی و گوینده‌ها از سرور حتی قبل از ورود کلید API و در حالت تست رایگان.
* استانداردسازی یکپارچه نام‌های مشتری‌محور موتورها و گوینده‌ها (اولترا، حرفه‌ای، استاندارد) و حذف تمام اسامی فنی متفرقه.

= 2.4.3 =
* امکان پاکسازی دستی کش و چانک‌های صوتی یک برگه/نوشته از دیتابیس محلی وردپرس و حافظه کش سرور.
* رفع کامل مشکل پرش و تغییر رنگ پلیر پس از لود صفحه (Zero-FOUC) با تزریق استایل‌های اولیه در head سند.
* ادغام و یکپارچه‌سازی کامل پالت‌های رنگی پلیر با رنگ هایلایت کلمات و انتخابگر رنگ اختصاصی.
* بهینه‌سازی کوئری‌های دیتابیس و کاهش چشمگیر زمان لود صفحه تنظیمات افزونه از ۳۰ ثانیه به زیر نیم ثانیه.
* رفع باگ کش طولانی‌مدت ترنزینت سهمیه تست رایگان و اتصال مستقیم استعلام وضعیت هدیه به سرور همراه با دکمه استعلام مجدد.

= 2.4.2 =
* تبدیل سیستم قیمت‌گذاری و شارژ حساب به دلار و سنت بر پایه نرخ روز ارز.
* نمایش هوشمند هزینه‌ها و موجودی حساب به تفکیک دلار و سنت در متاباکس و پیشخوان.
* بهینه‌سازی محاسبات اعشاری دقیق هزینه تولید صوت بر مبنای کاراکتر و نرخ هر موتور صوتی.

= 2.4.1 =
* ریبرندینگ جامع سامانه و افزونه به سافت جی‌ام (SoftGM / softgm.ir).
* رفع خطای دیتابیس MySQL 1406 (تبدیل ستون متن و چانک‌ها به LONGTEXT) برای پشتیبانی کامل از مقالات بسیار طولانی بدون محدودیت طول کاراکتر.
* انتقال منوی تنظیمات از بخش تنظیمات وردپرس به منوی اصلی پیشخوان (Top-Level Sidebar Menu: صوتی‌ساز سافت جی‌ام).
* اصلاح محاسبه دقیق تعداد نوشته‌ها و برگه‌های دارای صوت و بدون صوت بر اساس نوع نوشته و وضعیت انتشار (رفع تناقض آماری).
* افزودن تب‌های فیلتر سریع «دارای صدا» و «بدون صدا» در لیست نوشته‌ها و برگه‌ها همراه با فیلتر دراپ‌داون اختصاصی.
* آزادسازی کامل هش‌ها و قفل‌های نوشته هنگام لغو پردازش یا بروز خطا جهت جلوگیری از قفل شدن همیشگی مقالات در صف.
* ارتقای تنظیمات تایم‌اوت پراکسی Nginx به ۳۰۰ ثانیه جهت پایداری تبدیل مقالات چند هزار کلمه‌ای.

= 2.4.0 =
* افزودن تب پیشرفته «مدیریت درخواست‌ها و صف» (Queue & Requests Manager) در پنل مدیریت وردپرس و سرور با گزارش زنده وضعیت، فیلترها و آمار.
* لاگ‌گیری دقیق رویدادها و خطاهای تبدیل (System Event & Error Logs) با امکان مشاهده جزئیات فنی.
* سیستم استعلام و بازیابی هوشمند از سرور (Smart Sync & Recovery) بدون نیاز به تبدیل مجدد و بدون هزینه اضافی.
* استریم مستقیم فایل‌های صوتی حجیم به دیسک جهت رفع خطای اتمام حافظه (Memory Exhaustion) در مقالات طولانی.
* دکمه ریست قفل و ارسال مجدد وبهوک برای رفع گیرکردن در وضعیت پردازش.
