| import gradio as gr |
| from transformers import pipeline |
| import torch |
| from TTS.api import TTS |
| import os |
|
|
| |
| device = "cuda" if torch.cuda.is_available() else "cpu" |
|
|
| |
| |
|
|
| |
| chat_model = pipeline( |
| "text-generation", |
| model="Qwen/Qwen2.5-72B-Instruct", |
| device=device, |
| max_new_tokens=500 |
| ) |
|
|
| |
| tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2").to(device) |
|
|
| def respond(message, history): |
| """پاسخدهی هوشمند""" |
| |
| |
| prompt = f"""تو یک دستیار هوشمند فارسیزبان به نام "دلسا" هستی. |
| مهربان، باهوش و کمککننده هستی. |
| |
| کاربر: {message} |
| دلسا:""" |
| |
| |
| response = chat_model(prompt)[0]['generated_text'] |
| |
| |
| ai_response = response.split("دلسا:")[-1].strip() |
| |
| |
| audio_file = tts.tts( |
| text=ai_response, |
| speaker_wav="persian_female_voice.wav", |
| language="fa" |
| ) |
| |
| return ai_response, audio_file |
|
|
| |
| with gr.Blocks( |
| theme=gr.themes.Soft(primary_hue="cyan"), |
| css=""" |
| .container { |
| background: linear-gradient(135deg, #0f0c29, #302b63, #24243e); |
| min-height: 100vh; |
| } |
| .chatbot { |
| border-radius: 20px; |
| box-shadow: 0 0 30px rgba(0, 255, 255, 0.3); |
| } |
| """ |
| ) as demo: |
| |
| gr.Markdown( |
| """ |
| # 🌟 دلسا - دستیار هوشمند کهکشانی |
| ### با من صحبت کن، من به فارسی جواب میدم! ✨ |
| """ |
| ) |
| |
| chat_interface = gr.ChatInterface( |
| fn=respond, |
| title="دلسا", |
| description="هوش مصنوعی فارسیزبان با صدای طبیعی", |
| examples=[ |
| "سلام دلسا، حالت چطوره؟", |
| "یه شعر زیبا برام بگو", |
| "در مورد هوش مصنوعی توضیح بده" |
| ] |
| ) |
|
|
| demo.launch() |