import os import openai import gradio as gr from TTS.api import TTS import speech_recognition as sr # إعداد API من secret openai.api_key = os.getenv("OPENAI_API_KEY") MODEL_NAME = "ft:gpt-3.5-turbo-0125:amanpay:amanpay-khalid-v1:Byi1pXTM" client = openai.OpenAI(api_key=openai.api_key) # إعداد الصوت tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", progress_bar=False, gpu=False) speaker = "female-en-5" language = "en" # الدالة الرئيسية def assistant(audio): recognizer = sr.Recognizer() with sr.AudioFile(audio) as source: audio_data = recognizer.record(source) try: user_text = recognizer.recognize_google(audio_data, language="ar-SA") except: return "ما قدرت أفهمك، حاول مرة ثانية", None response = client.chat.completions.create( model=MODEL_NAME, messages=[ {"role": "system", "content": "أنت مساعد ذكي باللهجة السعودية، حنون وتشرح للمستخدم ببساطة."}, {"role": "user", "content": user_text} ] ) reply = response.choices[0].message.content tts.tts_to_file(text=reply, speaker=speaker, language=language, file_path="khalid_voice.wav") return reply, "khalid_voice.wav" # واجهة Gradio with gr.Blocks() as demo: gr.Markdown("## 🤖 مساعد عون الذكي باللهجة السعودية") gr.Markdown("🎙️ سجّل صوتك، و عون يرد عليك فورًا بصوت ونص ❤️") audio_input = gr.Audio(label="🎤 اضغط وسجّل صوتك") submit_btn = gr.Button("🔁 أرسل لعون") text_output = gr.Textbox(label="💬 رد عون") audio_output = gr.Audio(label="🔊 صوت عون") submit_btn.click(fn=assistant, inputs=audio_input, outputs=[text_output, audio_output]) demo.launch()