Spaces:
Paused
Paused
Update main.py
Browse files
main.py
CHANGED
|
@@ -718,7 +718,7 @@ SPEAKERS = {
|
|
| 718 |
user_states = {}
|
| 719 |
|
| 720 |
# ==============================================================================
|
| 721 |
-
# 🟢 پارت 12: توابع تغییر صدا و لیست گویندگان
|
| 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 |
-
|
|
|
|
| 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 |
-
🔑 **شناسه یکتای شما:**
|
|
|
|
| 2263 |
|
| 2264 |
👨💻 **ارتباط با پشتیبانی:**
|
| 2265 |
-
🆔 @
|
| 2266 |
await send_with_keyboard(client, chat_id, buy_text, True)
|
| 2267 |
return
|
| 2268 |
|
|
@@ -2273,10 +2277,10 @@ else:
|
|
| 2273 |
|
| 2274 |
کافیست **شناسه یکتای** ربات روبیکای خود را کپی کرده و برای پشتیبانی ما در برنامه هوش مصنوعی آلفا ارسال کنید تا اکانت اشتراکی شما به سرعت از برنامه به ربات روبیکا انتقال داده شود.
|
| 2275 |
|
| 2276 |
-
🔑 **شناسه یکتای ربات شما:**
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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():
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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"
|