Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -23,7 +23,7 @@ logging.basicConfig(
|
|
23 |
)
|
24 |
logger = logging.getLogger(__name__)
|
25 |
|
26 |
-
# ===== تحميل النماذج
|
27 |
try:
|
28 |
# 1. نموذج التعرف على الكلام
|
29 |
asr_pipeline = pipeline(
|
@@ -32,9 +32,9 @@ try:
|
|
32 |
token=os.getenv("HF_TOKEN")
|
33 |
)
|
34 |
|
35 |
-
# 2. نموذج توليف الصوت الأنثوي (
|
36 |
tts_tokenizer = AutoTokenizer.from_pretrained(
|
37 |
-
"facebook/mms-tts-arb", #
|
38 |
token=os.getenv("HF_TOKEN")
|
39 |
)
|
40 |
tts_model = VitsModel.from_pretrained(
|
@@ -77,14 +77,14 @@ async def generate_response(text: str, user_id: str) -> str:
|
|
77 |
try:
|
78 |
# تحديث ذاكرة المحادثة
|
79 |
conversation_history[user_id].append(text)
|
80 |
-
context = "\n".join(conversation_history[user_id][-3:])
|
81 |
|
82 |
chatbot = pipeline(
|
83 |
"text-generation",
|
84 |
model="aubmindlab/aragpt2-base",
|
85 |
token=os.getenv("HF_TOKEN"),
|
86 |
-
max_length=50,
|
87 |
-
temperature=0.7,
|
88 |
)
|
89 |
response = chatbot(
|
90 |
context,
|
@@ -100,7 +100,7 @@ async def text_to_speech(text: str) -> None:
|
|
100 |
try:
|
101 |
inputs = tts_tokenizer(text, return_tensors="pt")
|
102 |
with torch.no_grad():
|
103 |
-
output = tts_model(**inputs, speaker_id=1)
|
104 |
waveform = output.waveform[0].numpy()
|
105 |
sf.write("bot_response.wav", waveform, tts_model.config.sampling_rate)
|
106 |
except Exception as e:
|
@@ -116,12 +116,10 @@ async def process_voice(update: Update, context):
|
|
116 |
voice_file = await update.message.voice.get_file()
|
117 |
await voice_file.download_to_drive("user_voice.ogg")
|
118 |
|
119 |
-
# معالجة الصوت
|
120 |
user_text = await speech_to_text("user_voice.ogg")
|
121 |
bot_response = await generate_response(user_text, str(user_id))
|
122 |
await text_to_speech(bot_response)
|
123 |
|
124 |
-
# إرسال الرد
|
125 |
if enhance_audio("bot_response.wav", "bot_response_enhanced.wav"):
|
126 |
await update.message.reply_voice("bot_response_enhanced.wav")
|
127 |
else:
|
|
|
23 |
)
|
24 |
logger = logging.getLogger(__name__)
|
25 |
|
26 |
+
# ===== تحميل النماذج =====
|
27 |
try:
|
28 |
# 1. نموذج التعرف على الكلام
|
29 |
asr_pipeline = pipeline(
|
|
|
32 |
token=os.getenv("HF_TOKEN")
|
33 |
)
|
34 |
|
35 |
+
# 2. نموذج توليف الصوت الأنثوي (التسمية الصحيحة)
|
36 |
tts_tokenizer = AutoTokenizer.from_pretrained(
|
37 |
+
"facebook/mms-tts-arb", # الاسم الصحيح
|
38 |
token=os.getenv("HF_TOKEN")
|
39 |
)
|
40 |
tts_model = VitsModel.from_pretrained(
|
|
|
77 |
try:
|
78 |
# تحديث ذاكرة المحادثة
|
79 |
conversation_history[user_id].append(text)
|
80 |
+
context = "\n".join(conversation_history[user_id][-3:])
|
81 |
|
82 |
chatbot = pipeline(
|
83 |
"text-generation",
|
84 |
model="aubmindlab/aragpt2-base",
|
85 |
token=os.getenv("HF_TOKEN"),
|
86 |
+
max_length=50,
|
87 |
+
temperature=0.7,
|
88 |
)
|
89 |
response = chatbot(
|
90 |
context,
|
|
|
100 |
try:
|
101 |
inputs = tts_tokenizer(text, return_tensors="pt")
|
102 |
with torch.no_grad():
|
103 |
+
output = tts_model(**inputs, speaker_id=1)
|
104 |
waveform = output.waveform[0].numpy()
|
105 |
sf.write("bot_response.wav", waveform, tts_model.config.sampling_rate)
|
106 |
except Exception as e:
|
|
|
116 |
voice_file = await update.message.voice.get_file()
|
117 |
await voice_file.download_to_drive("user_voice.ogg")
|
118 |
|
|
|
119 |
user_text = await speech_to_text("user_voice.ogg")
|
120 |
bot_response = await generate_response(user_text, str(user_id))
|
121 |
await text_to_speech(bot_response)
|
122 |
|
|
|
123 |
if enhance_audio("bot_response.wav", "bot_response_enhanced.wav"):
|
124 |
await update.message.reply_voice("bot_response_enhanced.wav")
|
125 |
else:
|