منابع زندهٔ سرور
در حال سنجشدریافت CPU، RAM و فضای دیسک…
MELOYAB / CONTROL CENTER
نمای زندهٔ تشخیص، پردازش و تحویل آهنگ
در حال دریافت گزارشدر حال دریافت وضعیت سرویسها…
دریافت CPU، RAM و فضای دیسک…
کل پاسخ: زیر ۱ ثانیه · فاصلهٔ زمان کل تا موتور: حداکثر ۲ ثانیه
هنوز نمونهای دریافت نشده است.
برای تغییر سرعت یا بررسی کانالها، مرکز پردازش را باز کنید.
آمار آرشیو در پسزمینه تازه میشود؛ آماده بودن آهنگ برای هر هسته جداست.
MELOYAB / MUSIC RADAR
حسابها را متصل کن؛ کشف منبع، دریافت آهنگ و تکمیل آرشیو را به ملویاب بسپار.
برای هر حساب، روش شروع منابع تازه را تعیین کن.
ربات لازم نیست عضو منبع باشد؛ حساب تلگرام باید دسترسی داشته باشد. گفتگوهای خصوصی و محتوای دارای محدودیت ذخیره دریافت نمیشوند. منابع مشترک بین حسابها یکبار پردازش میشوند.
سیاست خودکار برای منابع تازه است. برای منابع قبلیِ انتخابنشده، گزینهٔ «اعمال روی منابع قبلی» را بزنید. تنظیمات دستی و منابعی که خودتان متوقف کردهاید حفظ میشوند.
در صف پر، نشانگر و رسید موسیقی حفظ میشود؛ ورود به صف پس از آزادشدن ظرفیت ادامه مییابد. فایل صوتی فقط موقت ذخیره میشود و آهنگها از همان مسیر فینگرپرینت و انتشار در کانال آرشیو عبور میکنند. مقصد و رباتهای آرشیو باید تنظیم شده باشند.
مکث و ادامه نشانگرها را حفظ میکند. تغییر به «سابقه و جدیدها» یا افزودن هسته در این حالت، سابقه را برای تکمیل هستههای انتخابشده مرور میکند. کارهای در حال اجرا ممکن است تا پایان ادامه یابند.
ورود آهنگ و ساخت فینگرپرینت
هر کانال باید فعال باشد و یک حساب تلگرامِ دارای دسترسی برای دریافت آهنگها داشته باشید.
ورود و تعویض حساب دریافت آرشیو در صفحهٔ «حساب تلگرام» انجام میشود.
هر حساب سه نقش مستقل دارد: دریافت فایل از منابع، خواندن آرشیو و ردیابی کانالها. انتخاب حساب برای دریافت، ردیابی آن را فعال نمیکند.
حساب اولیه با همان نشست قبلی حفظ میشود. هر حساب جدید باید جدا وارد شود و به کانالهای منبع و آرشیو دسترسی داشته باشد.
این حساب باید عضو کانال آرشیو و کانالهای منبع باشد. API ID و API Hash مشخصات برنامهاند؛ اتصال حساب با شماره، کد تلگرام و در صورت نیاز رمز دومرحلهای کامل میشود.
پس از خروج، این حساب از کار خارج میشود؛ حسابهای آمادهٔ دیگر طبق روش انتخابشده کار میکنند. برای تعویض شماره میتوانید همان API ID و API Hash را نگه دارید.
کد ورود و رمز دومرحلهای در پایگاه داده ذخیره نمیشوند. برای ورود از HTTPS یا تونل SSH استفاده کنید.
نگهداری و آمادهسازی داده
ساخت، پیشرفت و وضعیت حافظه در یک نگاه. عملیات طولانی را مکث کنید و از همان نقطه ادامه دهید.
کنترل اجرا
هنوز گزارشی دریافت نشده است.
پوشش داده و نگهداری
ایندکس اصلی، نسخههای مخصوص خواندن و ایندکسهای پایگاه داده در یک محل. «آماده» فقط به دامنهٔ پوشش اعلامشده مربوط است؛ نبود نسخهٔ کمکی لزوماً به معنی نبود آهنگ نیست.
وضعیت هنوز دریافت نشده است.
تازهسازی نمایش، عملیات ساخت را آغاز نمیکند. ساختهای طولانی از بخش عملیات همین صفحه قابل پیگیریاند؛ وضعیت منوها و فرمهای باز هنگام تازهسازی حفظ میشود.
توقف، درخواست پایان امن عملیات است و ممکن است تا پایان مرحلهٔ جاری طول بکشد. جزئیات نتیجه و علت شکست در هر عملیات نمایش داده میشود.
وضعیت ثبت هر هسته مستقل است. تکمیل موارد ناقص فقط با دستور شما شروع میشود؛ اطلاعات فعلی بازنویسی نمیشوند.
بررسی تکمیلی با Chromaprint، تطابق توالی چند بخش و آستانههای ذخیرهشده انجام میشود. تنظیمات پذیرش نتیجه حفظ میشوند.
ساخت نسخهٔ مخصوص خواندن خودکار انجام نمیشود. انتخاب هستههای جستوجو و ورود از صفحهٔ هستههای تشخیص انجام میشود.
کش فشرده، دادهٔ اصلی ایندکس را تغییر نمیدهد. دادهٔ کوچک یا کمفشردهشونده خام میماند. تغییر روش و تخلیه در شروع درخواست بعدی هر پردازشگر اعمال میشود؛ درخواست جاری ادامه دارد. کش نتیجهٔ آماده در این آمار نیست.
تشخیص و ساخت فینگرپرینت با Chromaprint انجام میشود. وضعیت ایندکس و آستانههای پذیرش در همین پنل قابل مدیریت است.
compact صفحات آزاد فایل را حذف میکند؛ فشردهسازی کش نیست. برای همهٔ هستهها و هر بخش مستقل قابل برنامهریزی است. اجرای آن توقف سرویس و فضای کپی نیاز دارد؛ اصل ایندکس نگه داشته میشود. ساخت نسخهٔ مخصوص خواندن آغاز نمیشود.
این دکمه هستههای ناقص آرشیو موجود را صف میکند، حتی اگر ورود کانال غیرفعال باشد. موفقیت این عملیات یعنی صفسازی تمام شده؛ تعداد آماده و علت توقف واقعی در «موتور فینگرپرینت» نمایش داده میشود. توقف کلی استخراج همچنان اعمال میشود.
ربات دریافت دستی، ورودی مدیر را میگیرد. رباتهای این صفحه انتشار آرشیو و ثبت شناسهٔ فایل را انجام میدهند. برای هر ربات توکن متفاوتی ثبت کنید و در کانال آرشیو اجازهٔ ارسال و حذف پیام بدهید.
اگر آهنگ شناسهٔ قابل استفاده نداشته باشد، استفادهٔ بعدی آن را در صف بازسازی قرار میدهد. پست اصلی حفظ میشود. برای گرفتن شناسه، یک فوروارد موقت در همان کانال ایجاد و پس از ثبت شناسه حذف میشود؛ در صورت شکست پاکسازی، شمارهٔ پیام برای بررسی مدیر باقی میماند.
«ورودی تأییدشده» به معنی آماده بودن هر سه فینگرپرینت نیست؛ وضعیت ستون هر هسته را ببینید.
با جستوجوی شناسه، وضعیت هر هسته و گزینهٔ تکمیل هستههای ناقص همان آهنگ نمایش داده میشود.
برای هر مشتری یک کلید مستقل بسازید. سقفهای این صفحه قراردادیاند؛ در روش مصرف واقعی فقط با فعالکردن گزینهٔ مربوط در «درخواستها → کنترل مشترک پردازش» اعمال میشوند. غیرفعالسازی دسترسی، در همهٔ روشهای ظرفیت اعمال میشود. کلید فقط هنگام ساخت نمایش داده میشود. این کلید به پنل، بکاپ یا تنظیمات دسترسی ندارد.
راهنمای اتصال و OpenAPIمسیر POST /v1/search-music آهنگهای آماده با نام و خوانندهٔ یکسان را برمیگرداند. فیلدهای تحویل از تنظیمات همان کلید پیروی میکنند. این مسیر تشخیص صوتی نیست.
برای مشاهدهٔ آمادگی ایندکس، وضعیت را تازه کنید.
{"MusicName":"نام آهنگ","ArtistName":"نام خواننده","limit":10}اگر چند نسخه موجود باشد، همه گزینهاند؛ نام یکسان بهتنهایی نسخهٔ کامل یا دمو را ثابت نمیکند.
سقف دقیقه و همزمانی مستقلاند. تعداد فعال از آخرین گزارش سرویس است و همهٔ مصرفکنندگان همین کلید را شامل میشود. مقدار داخل فرم تا فشردن «ذخیره» اعمال نمیشود.
زمان میانگین این آمار شامل دریافت بدنه و پردازش HTTP سرور است. سقف کلید به معنی تضمین ظرفیت سختافزار نیست. در روش مصرف واقعی، ظرفیت با منابع موجود تغییر میکند. در روش دستی، سقف کل تشخیص و دانلود نیز اعمال میشود.
کش سرعت ورودی تکراری را بهتر میکند؛ برای درخواست جدید جای CPU، RAM و SSD کافی را نمیگیرد. کش خاموش با مقدار صفر ممکن است. زمان منبعِ نتیجهٔ کششده جدا از زمان درخواست فعلی گزارش میشود. برای ارزیابی ظرفیت از کلیپهای متنوع و زمان p95 استفاده کنید.
این رباتها فایل پیامهای منبع را میخوانند؛ مدیریتشان از رباتهای انتشار آرشیو جداست. هر ربات باید به کانالهای منبع دسترسی داشته باشد. ربات در مکث تلگرام کار جدید نمیگیرد؛ ربات آمادهٔ دیگر و سپس حسابهای تلگرام بررسی میشوند.
MELOYAB / STATISTICS
هر درخواست پایانیافته یک بار شمرده میشود. درخواست دوباره، حتی برای فایل یکسان یا پاسخ کششده، درخواست تازه محسوب میشود.
در حال دریافت آمار…
هر هسته برای هر درخواست حداکثر یک بار شمرده میشود، حتی اگر چند بخش کلیپ را بررسی کرده باشد. یک پاسخ ممکن است با مشارکت چند هسته پیدا شود؛ بنابراین جمع ستون «پیداشده» هستهها میتواند از تعداد درخواستهای پیداشده بیشتر باشد. پاسخهای کششده هم در سهم نتیجهٔ هستهها حساب میشوند؛ این جدول تعداد اجرای تازهٔ هسته را نشان نمیدهد.
زمان کامل درخواست تا پایان پاسخ؛ زمانهای موازی هستهها با هم جمع نمیشوند. این اعداد سرعت تحویل API را نشان میدهند، نه زمان ارسال پیام ربات به تلگرام.
چندتطابقی یعنی بیش از یک شناسهٔ آهنگ متمایز در پاسخ؛ تأیید همان آهنگ توسط دو هسته «توافق» است. ممکن است یک درخواست در چند معیار این بخش حضور داشته باشد.
آمار فقط POSTهای رسیده به مسیرهای تشخیص صوت /v1/recognize و /v1/recognize-clip را پوشش میدهد؛ شامل درخواستهای نامعتبر و خطاهای HTTP این مسیرها هم میشود. دانلود پیش از رسیدن ربات به API، ورود آهنگ به آرشیو، جستوجوی نام آهنگ و درخواستهای در حال اجرا در این شمارنده نیستند. قطع ناگهانی فرایند ممکن است مانع ثبت درخواست ناتمام شود.
مبنای بازه زمان پایان درخواست است؛ تجمیع با دقت یک دقیقه و تازهسازی تا ۳۰ ثانیه انجام میشود. آمار از نصب این نسخه شروع میشود و مستقل از حذف تاریخچه و ارسال لاگ به کانال است. دادهٔ تجمیعی ۸ روز نگهداری میشود و همراه بکاپ برنامه ذخیره میشود. رکوردهای متفاوت یک آهنگ همچنان شناسههای جدا هستند.
«پیدا نشده» فقط no_match است؛ خطا، بررسی ناقص و قطع ارتباط جدا گزارش میشوند. درصد پیداشده، سهم پاسخهای پیداشده از کل درخواستهای ثبتشده است؛ معیار صحت موسیقایی یا دقت الگوریتم نیست.
ارسال مستقیم را تا پیش از بررسی نهایی مقصد میتوانید لغو کنید. بکاپ ناقص پس از لغو، نسخهٔ قابل بازیابی محسوب نمیشود.
در حال دریافت وضعیت…
در حال بررسی پوشش بازیابی…
بکاپ جدید شامل کد همان نسخه، تنظیمات نصب و پنل، رمزها و کلیدها، تمام مجموعههای دیتابیس، ایندکسها و نشستهای تلگرام است. فایلهای اصلی آهنگ همچنان در کانال آرشیو هستند؛ کش صوتی و سیستمعامل در بکاپ برنامه نیستند.
برای بازگردانی روی سرور خالی، نصب با گزینهٔ --restore-ssh یا ابزار recover-server.sh همین بسته را با فایل .myb یا پوشهٔ پارتها اجرا کنید. راهنما: DISASTER-RECOVERY.fa.md. ریستور داخل پنل همان حالت محافظهکارانهٔ قبلی است؛ تنظیمات میزبان و نشست زنده را جایگزین نمیکند.
رمز بکاپ و آخرین مجموعهٔ کامل پارتها را خارج از سرور نگه دارید. فقط پایان ارسال همهٔ پارتها به معنی وجود نسخهٔ کامل خارج از سرور است. فاصلهٔ زمانی با آخرین بکاپ، حداکثر بازهٔ دادهٔ در معرض از دست رفتن را مشخص میکند.
«دریافت از SSH» فقط فایل را میآورد؛ دادهٔ فعلی را جایگزین نمیکند. برای برگشت کامل پس از خرابی سرور، روی سرور تازه بسته را باز کنید و نصب را در حالت بازیابی اجرا کنید:
sudo bash install.sh /root/meloyab --restore-ssh
راهنما مشخصات SSH و رمز بکاپ را میپرسد، نسخههای کامل را نشان میدهد و پس از انتخاب، دیتابیسها، ایندکسها، تنظیمات نصب و پنل و سشنهای ذخیرهشده را بازیابی و سرویس را راهاندازی میکند. مسیر مقصد باید تازه باشد؛ ابتدا نصب عادی انجام ندهید.
در قطع ارتباط، «ادامهٔ ارسال» پارتهای ثبتشده را تکرار نمیکند. در حالت نادرِ قطع اتصال بعد از دریافت فایل توسط تلگرام و قبل از ثبت رسید روی سرور، ممکن است یک پارت تکراری ارسال شود؛ دریافت پارت تکراریِ یکسان بیاثر است.
همهٔ فایلهای .mybp یک بکاپ را با هم در فرم بارگذاری انتخاب کنید، یا از حساب مجاز به ربات بفرستید. ترتیب انتخاب مهم نیست. بعد از رسیدن همهٔ پارتها، رمز را وارد و «ریستور یکپارچه» را بزنید؛ ابتدا checksum همهٔ پارتها و فایل کامل و سپس رمز و محتوای بکاپ بررسی میشود. پارت کم یا خراب اجازهٔ ریستور نمیدهد.
این قابلیت برای تکههای یک snapshot است؛ چند بکاپ مستقل با دادههای متفاوت را با هم ادغام نمیکند. پارتهای دریافتی و فایل تجمیعشده روی دیسک باقی میمانند؛ برای تجمیع، فضای فایل کامل و برای ریستور، فضای آمادهسازی و بکاپ ایمنی لازم است.
یک عملیات را انتخاب کنید.
سنجش دقت به کلیپ آزمون و جواب صحیح هر کلیپ نیاز دارد. بدون این داده، عدد دقت ساخته نمیشود. فایلها و manifest.jsonl را طبق راهنما در imports/evaluation قرار دهید.
دانلود گزارشتشخیص و ساخت فینگرپرینت با Chromaprint انجام میشود. وضعیت ایندکس و آستانههای پذیرش در همین پنل قابل مدیریت است.
برای هر کلیپ یک خط JSON در imports/evaluation/manifest.jsonl بنویسید. track_id شناسهٔ فایل مرجع در جدول آرشیو است؛ برای آهنگ خارج از آرشیو null بگذارید.
{"file":"clip.mp3","track_id":"شناسهٔ ۶۴ نویسهای آهنگ"}
{"file":"unknown.mp3","track_id":null}از چند کلیپ مستقل و فایلهای خارج از آرشیو استفاده کنید. هیچ هستهای پیدا کردن تمام تغییرات شدید یا گفتار غالب را تضمین نمیکند. این روشها برای شناسایی ضبط موجودند، نه زمزمه یا کاور.
ریستور، داده و ایندکسها را از بکاپ جایگزین میکند و قبل از آن بکاپ ایمنی کامل میسازد. رباتهای بازیابیشده خاموش میمانند و پیامهای صفشده لغو میشوند تا پس از بررسی، خودتان رباتها را فعال کنید. بکاپ کامل جدید فایل .env و رمز پنل را رمزگذاریشده همراه دارد؛ رمز خود بکاپ را خارج از سرور نگه دارید. برای سرور تازه، راهنمای DISASTER-RECOVERY.fa.md را دنبال کنید.
دانلود گزارش بررسیوضعیت سرویسها و خطاهای اخیر برای بررسی فنی
دانلود API از کش دیسکی پاسخ داده میشود. در اولین دریافت، فایل کامل از تلگرام گرفته و صحت آن بررسی میشود. ربات پس از اولین تحویل موفق، شناسهٔ مخصوص خودش را دوباره استفاده میکند.
این هدف معادل ۸۳٫۳ درخواست در ثانیه است و ظرفیت تضمینشدهٔ این نصب نیست. دانلود API به نرخ برخورد کش و پهنای باند وابسته است؛ تشخیص به سختافزار و ایندکس؛ ارسال ربات به محدودیت تلگرام. برای هر کدام باید آزمون بار جدا انجام شود.
مثال: دانلود ۵۰۰۰ آهنگ ۸ مگابایتی در دقیقه، حدود ۵٫۳ گیگابیت در ثانیه خروجی شبکه میخواهد. یک ربات با سقف رایگان معمول حدود ۳۰ ارسال در ثانیه، این تعداد تحویل فوری را پوشش نمیدهد.
فایل ورودی + پاسخ + شناسهٔ درخواست
برای بررسی خطاهای بعدی، بایتهای اصلی فایل ورودی و گزارش پاسخ در کانال تلگرام نگهداری میشوند. ارسال در پسزمینه انجام میشود و پاسخ تشخیص منتظر تلگرام نمیماند.
تا ۱۶ ربات مستقل اضافه کنید. درخواستهای تازه بین رباتهای فعال بهصورت گردشی تقسیم میشوند. ربات در مکث تلگرام انتخاب نمیشود؛ محدودیت مشترک کانال رعایت میشود و افزایش تعداد رباتها ظرفیت نامحدود ایجاد نمیکند.
برای هر درخواست، فایل اصلی و گزارش JSON پاسخ با همان شناسه ارسال میشوند. کلیدهای دسترسی و بخش امضاشدهٔ لینک دانلود از گزارش حذف میشوند. درخواستهایی که پیش از دریافت فایل رد شدهاند، فقط گزارش دارند.
گزارشهای قدیمی سهم ارسال زنده را اشغال نمیکنند. پس از پرشدن بودجهٔ نگهداری، فایل محلی قدیمیترین گزارشها آزاد میشود؛ خلاصه و لینک رسید تا پایان مهلت باقی میماند و ارسال دوبارهٔ آن فایل ممکن نیست.