Hamed744 commited on
Commit
e9b8582
·
verified ·
1 Parent(s): a1fb5af

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -19
app.py CHANGED
@@ -1,4 +1,4 @@
1
- # app.py - نسخه Worker با پشتیبانی از Fallback و Retry Limit
2
 
3
  import os
4
  import sys
@@ -90,21 +90,9 @@ def parse_audio_mime_type(mime_type: str) -> dict[str, int]:
90
  return {"bits_per_sample": bits, "rate": rate}
91
 
92
  def smart_text_split(text, max_size=3800):
93
- if len(text) <= max_size: return [text]
94
- chunks, current_chunk = [], ""
95
- sentences = re.split(r'(?<=[.!?؟])\s+', text)
96
- for sentence in sentences:
97
- if len(current_chunk) + len(sentence) + 1 > max_size:
98
- if current_chunk: chunks.append(current_chunk.strip())
99
- current_chunk = sentence
100
- while len(current_chunk) > max_size:
101
- split_idx = next((i for i in range(max_size - 1, max_size // 2, -1) if current_chunk[i] in ['،', ',', ';', ':', ' ']), -1)
102
- part, current_chunk = (current_chunk[:split_idx+1], current_chunk[split_idx+1:]) if split_idx != -1 else (current_chunk[:max_size], current_chunk[max_size:])
103
- chunks.append(part.strip())
104
- else: current_chunk += (" " if current_chunk else "") + sentence
105
- if current_chunk: chunks.append(current_chunk.strip())
106
- final_chunks = [c for c in chunks if c]
107
- return final_chunks
108
 
109
  def merge_audio_files_func(file_paths, output_path):
110
  if not PYDUB_AVAILABLE: logging.warning("⚠️ pydub برای ادغام در دسترس نیست."); return False
@@ -208,6 +196,7 @@ def core_generate_audio(text_input, prompt_input, selected_voice, temperature_va
208
 
209
  # 2. استفاده از مدل استاندارد
210
  else:
 
211
  text_chunks = smart_text_split(text_input, DEFAULT_MAX_CHUNK_SIZE)
212
  generated_files = []
213
  standard_failed = False
@@ -226,13 +215,12 @@ def core_generate_audio(text_input, prompt_input, selected_voice, temperature_va
226
  if fpath: generated_files.append(fpath)
227
  else:
228
  standard_failed = True
229
- break # شکست در تولید یکی از چانک‌ها
230
 
231
  # 3. بررسی شکست و Fallback
232
  if standard_failed:
233
  if fallback_to_live:
234
  logging.info(f"[{session_id}] 🔄 مدل استاندارد شکست خورد. سوییچ به مدل لایف (Fallback)...")
235
- # پاکسازی فایل‌های ناقص قبلی
236
  generated_files = []
237
  # فراخوانی مدل لایف برای کل متن
238
  pcm_data = asyncio.run(generate_audio_live_with_retry(text_input, prompt_input, selected_voice, session_id))
@@ -243,7 +231,7 @@ def core_generate_audio(text_input, prompt_input, selected_voice, temperature_va
243
  else:
244
  raise Exception(f"تولید صدا با مدل استاندارد پس از {retry_limit} تلاش ناموفق بود.")
245
 
246
- # اگر استاندارد موفق بود، فایل‌ها را ادغام کن
247
  if not generated_files: raise Exception("هیچ فایلی تولید نشد.")
248
 
249
  if len(generated_files) > 1:
 
1
+ # app.py - نسخه Worker بدون تقسیم متن (No Splitting)
2
 
3
  import os
4
  import sys
 
90
  return {"bits_per_sample": bits, "rate": rate}
91
 
92
  def smart_text_split(text, max_size=3800):
93
+ # تغییر مهم: حذف کامل تقسیم‌بندی متن
94
+ # کل متن به عنوان یک تکه بازگردانده می‌شود تا هوش مصنوعی یکجا آن را پردازش کند
95
+ return [text]
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  def merge_audio_files_func(file_paths, output_path):
98
  if not PYDUB_AVAILABLE: logging.warning("⚠️ pydub برای ادغام در دسترس نیست."); return False
 
196
 
197
  # 2. استفاده از مدل استاندارد
198
  else:
199
+ # تقسیم‌بندی هوشمند حذف شده و فقط یک چانک (کل متن) برمی‌گرداند
200
  text_chunks = smart_text_split(text_input, DEFAULT_MAX_CHUNK_SIZE)
201
  generated_files = []
202
  standard_failed = False
 
215
  if fpath: generated_files.append(fpath)
216
  else:
217
  standard_failed = True
218
+ break # شکست در تولید یکی از چانک‌ها (در اینجا کل متن)
219
 
220
  # 3. بررسی شکست و Fallback
221
  if standard_failed:
222
  if fallback_to_live:
223
  logging.info(f"[{session_id}] 🔄 مدل استاندارد شکست خورد. سوییچ به مدل لایف (Fallback)...")
 
224
  generated_files = []
225
  # فراخوانی مدل لایف برای کل متن
226
  pcm_data = asyncio.run(generate_audio_live_with_retry(text_input, prompt_input, selected_voice, session_id))
 
231
  else:
232
  raise Exception(f"تولید صدا با مدل استاندارد پس از {retry_limit} تلاش ناموفق بود.")
233
 
234
+ # اگر استاندارد موفق بود، فایل‌ها را ادغام کن (در اینجا معمولاً فقط یک فایل است)
235
  if not generated_files: raise Exception("هیچ فایلی تولید نشد.")
236
 
237
  if len(generated_files) > 1: