Opera8 commited on
Commit
b656730
·
verified ·
1 Parent(s): c6f74d6

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +46 -21
main.py CHANGED
@@ -718,7 +718,7 @@ SPEAKERS = {
718
  user_states = {}
719
 
720
  # ==============================================================================
721
- # 🟢 پارت 12: توابع تغییر صدا و لیست گویندگان (ضد قطعی و مقاوم در برابر 429)
722
  # ==============================================================================
723
  # ==================================================================
724
  # لیست‌های اولیه ربات
@@ -841,7 +841,6 @@ async def process_standard_vc_job(client, chat_id, src_bytes, ref_bytes, job_typ
841
 
842
  if os.path.exists(file_name_mp3): os.remove(file_name_mp3)
843
 
844
-
845
  async def process_legacy_vc_job(client, chat_id, src_bytes, model_url, pitch, model_name):
846
  str_chat_id = str(chat_id).replace("`", "").replace("'", "").replace('"', "").strip()
847
  creds = get_user_credits(str_chat_id)
@@ -935,7 +934,8 @@ async def process_legacy_vc_job(client, chat_id, src_bytes, model_url, pitch, mo
935
  await asyncio.sleep(4)
936
 
937
  if upload_result is True:
938
- if not creds.get("is_premium"):
 
939
  user_credits_db[str_chat_id]["voice_conv"] -= 1
940
  save_db(user_credits_db)
941
  else:
@@ -2239,30 +2239,34 @@ else:
2239
 
2240
  با تهیه اشتراک ویژه، محدودیت‌ها را کنار بزنید و از نهایت قدرت هوش مصنوعی لذت ببرید! 🚀
2241
 
 
2242
  🎁 **بسته طلایی یک‌ماهه شامل:**
2243
- 🤖 چت با هوش مصنوعی بصورت نامحدود
2244
- 🎙️ تغییر صدا و کلون کردن صدای نامحدود
2245
- 🗣 تبدیل متن به صدا بصورت نامحدود با ۳۰ گوینده
2246
- 🎙 ساخت پادکست بصورت نامحدود
2247
-
2248
- 🪄 ۱۰ ویرایش تصویر
2249
- 🎨 ۲۰ تولید تصویر
2250
- 📁 تحلیل نامحدود فایل و سند
2251
- 📝 تبدیل فایل صوتی به متن نامحدود
2252
 
2253
  💳 **هزینه اشتراک یک ماهه:** 250 هزار تومان
2254
 
2255
  💳 **شماره کارت جهت واریز:**
 
2256
  `6219861411958035`
 
2257
  👤 **به نام:** کوهی
2258
 
2259
  ✅ **نحوه فعال‌سازی:**
2260
  پس از واریز مبلغ، لطفاً رسید پرداختی را به همراه **شناسه یکتای خود** (که در پایین آمده) به آیدی پشتیبانی زیر ارسال کنید تا اشتراک شما فعال گردد:
2261
 
2262
- 🔑 **شناسه یکتای شما:** `{chat_id}`
 
2263
 
2264
  👨‍💻 **ارتباط با پشتیبانی:**
2265
- 🆔 @H_a_m_e_d100"""
2266
  await send_with_keyboard(client, chat_id, buy_text, True)
2267
  return
2268
 
@@ -2273,10 +2277,10 @@ else:
2273
 
2274
  کافیست **شناسه یکتای** ربات روبیکای خود را کپی کرده و برای پشتیبانی ما در برنامه هوش مصنوعی آلفا ارسال کنید تا اکانت اشتراکی شما به سرعت از برنامه به ربات روبیکا انتقال داده شود.
2275
 
2276
- 🔑 **شناسه یکتای ربات شما:** `{chat_id}`
 
2277
 
2278
- 👨‍💻 **دقت کنید شناسه ربات رو به پشتیبانی داخل خود برنامه هوش مصنوعی آلفا ارسال کنید:**
2279
- 🆔 @H_a_m_e_d100"""
2280
  await send_with_keyboard(client, chat_id, transfer_text, True)
2281
  return
2282
 
@@ -2320,7 +2324,21 @@ else:
2320
  user_states[str_chat_id]["mode"] = "clone_waiting_for_src"
2321
  user_states[str_chat_id]["file_bytes"] = None
2322
  user_states[str_chat_id]["ref_bytes"] = None
2323
- await send_with_keyboard(client, chat_id, "👤 شما وارد بخش **کلون کردن صدای اختصاصی** شدید.\n\nدر این بخش شما به 2 فایل صوتی نیاز دارید:\n1️⃣ صدای خودتان (ورودی)\n2️⃣ صدای شخص هدف (الگو)\n\nابتدا **صدای خودتان (ورودی)** را ارسال کنید:\n(برای خروج دکمه «برگشت♻️» را بزنید)", True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2324
  return
2325
  # ===============================================
2326
 
@@ -2575,7 +2593,11 @@ else:
2575
  user_states[str_chat_id]["mode"] = "vc_waiting_for_model"
2576
 
2577
  model_menu = "✅ صدای شما دریافت شد.\n\nلطفا **شماره** مدلی که می‌خواهید صدایتان به آن تبدیل شود را ارسال کنید:\n\n"
2578
- for k, v in LEGACY_MODELS.items(): model_menu += f"{k}. {v['name']}\n"
 
 
 
 
2579
  model_menu += "➖➖➖➖➖➖➖➖\n"
2580
  for k, v in STANDARD_MODELS.items(): model_menu += f"{k}. {v['name']}\n"
2581
 
@@ -2599,7 +2621,10 @@ else:
2599
  asyncio.create_task(process_standard_vc_job(client, chat_id, src_bytes, ref_bytes, model["name"], "voice_conv"))
2600
 
2601
  elif choice in LEGACY_MODELS:
2602
- if creds["voice_conv"] <= 0: return await send_with_keyboard(client, chat_id, "❌ سهمیه تغییر صدای شما تمام شده است. لطفاً از منوی اصلی وارد بخش «خرید اشتراک 💎» شوید.", False)
 
 
 
2603
  user_states[str_chat_id]["selected_model"] = choice
2604
  user_states[str_chat_id]["mode"] = "vc_waiting_for_gender"
2605
 
@@ -2611,7 +2636,7 @@ else:
2611
 
2612
  elif current_mode == "vc_waiting_for_gender":
2613
  choice = to_english_digits(user_text_str).strip()
2614
- if choice not in ["1", "2"]:
2615
  return await send_with_keyboard(client, chat_id, "❌ لطفاً عدد 1 (مرد) یا 2 (زن) را ارسال کنید.", False)
2616
 
2617
  user_gender = "male" if choice == "1" else "female"
 
718
  user_states = {}
719
 
720
  # ==============================================================================
721
+ # 🟢 پارت 12: توابع تغییر صدا و لیست گویندگان
722
  # ==============================================================================
723
  # ==================================================================
724
  # لیست‌های اولیه ربات
 
841
 
842
  if os.path.exists(file_name_mp3): os.remove(file_name_mp3)
843
 
 
844
  async def process_legacy_vc_job(client, chat_id, src_bytes, model_url, pitch, model_name):
845
  str_chat_id = str(chat_id).replace("`", "").replace("'", "").replace('"', "").strip()
846
  creds = get_user_credits(str_chat_id)
 
934
  await asyncio.sleep(4)
935
 
936
  if upload_result is True:
937
+ # اگر مدل باب اسفنجی نبود، از اعتبار کسر کن
938
+ if not creds.get("is_premium") and model_name != "باب اسفنجی":
939
  user_credits_db[str_chat_id]["voice_conv"] -= 1
940
  save_db(user_credits_db)
941
  else:
 
2239
 
2240
  با تهیه اشتراک ویژه، محدودیت‌ها را کنار بزنید و از نهایت قدرت هوش مصنوعی لذت ببرید! 🚀
2241
 
2242
+ ━━━━━━━━━━━━━━━━━━━
2243
  🎁 **بسته طلایی یک‌ماهه شامل:**
2244
+ 🤖 چت با هوش مصنوعی: نامحدود
2245
+ 🎙️ تغییر صدا و کلون کردن صدا: نامحدود
2246
+ 🗣 تبدیل متن به صدا (۳۰ گوینده): نامحدود
2247
+ 🎙 ساخت پادکست: نامحدود
2248
+ 📁 تحلیل فایل و سند: نامحدود ∞
2249
+ 📝 تبدیل فایل صوتی به متن: نامحدود ∞
2250
+ 🪄 ویرایش تصویر: ۱۰ عدد
2251
+ 🎨 تولید تصویر: ۲۰ عدد
2252
+ ━━━━━━━━━━━━━━━━━━━
2253
 
2254
  💳 **هزینه اشتراک یک ماهه:** 250 هزار تومان
2255
 
2256
  💳 **شماره کارت جهت واریز:**
2257
+ ➖➖➖➖➖➖➖➖
2258
  `6219861411958035`
2259
+ ➖➖➖➖➖➖➖➖
2260
  👤 **به نام:** کوهی
2261
 
2262
  ✅ **نحوه فعال‌سازی:**
2263
  پس از واریز مبلغ، لطفاً رسید پرداختی را به همراه **شناسه یکتای خود** (که در پایین آمده) به آیدی پشتیبانی زیر ارسال کنید تا اشتراک شما فعال گردد:
2264
 
2265
+ 🔑 **شناسه یکتای شما:**
2266
+ `{chat_id}`
2267
 
2268
  👨‍💻 **ارتباط با پشتیبانی:**
2269
+ 🆔 @aialpha_admin"""
2270
  await send_with_keyboard(client, chat_id, buy_text, True)
2271
  return
2272
 
 
2277
 
2278
  کافیست **شناسه یکتای** ربات روبیکای خود را کپی کرده و برای پشتیبانی ما در برنامه هوش مصنوعی آلفا ارسال کنید تا اکانت اشتراکی شما به سرعت از برنامه به ربات روبیکا انتقال داده شود.
2279
 
2280
+ 🔑 **شناسه یکتای ربات شما:**
2281
+ `{chat_id}`
2282
 
2283
+ 👨‍💻 **دقت کنید شناسه ربات رو به پشتیبانی داخل خود برنامه هوش مصنوعی آلفا ارسال کنید.**"""
 
2284
  await send_with_keyboard(client, chat_id, transfer_text, True)
2285
  return
2286
 
 
2324
  user_states[str_chat_id]["mode"] = "clone_waiting_for_src"
2325
  user_states[str_chat_id]["file_bytes"] = None
2326
  user_states[str_chat_id]["ref_bytes"] = None
2327
+ clone_text = """👤 **شما وارد بخش کلون کردن صدای اختصاصی شدید.**
2328
+
2329
+ ✨ **این بخش چه کاری انجام می‌دهد؟**
2330
+ با این ویژگی بی‌نظیر، شما می‌توانید صدای خود (یا هر فرد دیگری) را دقیقاً شبیه‌سازی کنید! کافیست یک نمونه از صدای خودتان صحبت کنید و یک نمونه از صدای شخص مورد نظر (الگو) را به هوش مصنوعی بدهید. ربات لحن و کلمات شما را گرفته و دقیقاً با جنس صدای شخص الگو بازسازی می‌کند.
2331
+
2332
+ 📌 **راهنمای استفاده:**
2333
+ شما در این مرحله به **2 فایل صوتی** نیاز دارید:
2334
+ 1️⃣ **صدای ورودی (شما):** صدایی که می‌خواهید متن و لحن آن خوانده شود.
2335
+ 2️⃣ **صدای الگو (هدف):** صدایی که می‌خواهید خروجی نهایی شبیه به آن شود (بدون نویز و موزیک پس‌زمینه، بین ۳ تا ۱۰ ثانیه بهترین نتیجه را می‌دهد).
2336
+
2337
+ 👇 **مرحله اول:**
2338
+ لطفاً ابتدا **صدای خودتان (ورودی)** را به صورت ویس یا فایل صوتی ارسال کنید:
2339
+
2340
+ *(برای خروج دکمه «برگشت♻️» را بزنید)*"""
2341
+ await send_with_keyboard(client, chat_id, clone_text, True)
2342
  return
2343
  # ===============================================
2344
 
 
2593
  user_states[str_chat_id]["mode"] = "vc_waiting_for_model"
2594
 
2595
  model_menu = "✅ صدای شما دریافت شد.\n\nلطفا **شماره** مدلی که می‌خواهید صدایتان به آن تبدیل شود را ارسال کنید:\n\n"
2596
+ for k, v in LEGACY_MODELS.items():
2597
+ if k == "8":
2598
+ model_menu += f"{k}. {v['name']} (نامحدود رایگان)\n"
2599
+ else:
2600
+ model_menu += f"{k}. {v['name']}\n"
2601
  model_menu += "➖➖➖➖➖➖➖➖\n"
2602
  for k, v in STANDARD_MODELS.items(): model_menu += f"{k}. {v['name']}\n"
2603
 
 
2621
  asyncio.create_task(process_standard_vc_job(client, chat_id, src_bytes, ref_bytes, model["name"], "voice_conv"))
2622
 
2623
  elif choice in LEGACY_MODELS:
2624
+ # اگر شماره مدل ۸ نبود و اعتبار هم صفر بود، ارور بده
2625
+ if choice != "8" and creds["voice_conv"] <= 0:
2626
+ return await send_with_keyboard(client, chat_id, "❌ سهمیه تغییر صدای شما تمام شده است. لطفاً از منوی اصلی وارد بخش «خرید اشتراک 💎» شوید.", False)
2627
+
2628
  user_states[str_chat_id]["selected_model"] = choice
2629
  user_states[str_chat_id]["mode"] = "vc_waiting_for_gender"
2630
 
 
2636
 
2637
  elif current_mode == "vc_waiting_for_gender":
2638
  choice = to_english_digits(user_text_str).strip()
2639
+ if choice not in["1", "2"]:
2640
  return await send_with_keyboard(client, chat_id, "❌ لطفاً عدد 1 (مرد) یا 2 (زن) را ارسال کنید.", False)
2641
 
2642
  user_gender = "male" if choice == "1" else "female"