Sadem-12's picture
Update app.py
c85e67e verified
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()