smjain commited on
Commit
137aa2f
1 Parent(s): 312f207

Upload myinfer_latest.py

Browse files
Files changed (1) hide show
  1. myinfer_latest.py +16 -1
myinfer_latest.py CHANGED
@@ -49,6 +49,8 @@ MAX_CONCURRENT_REQUESTS = 2 # Adjust this number as needed
49
  # Initialize the semaphore with the maximum number of concurrent requests
50
  request_semaphore = Semaphore(MAX_CONCURRENT_REQUESTS)
51
 
 
 
52
  #set_start_method('spawn', force=True)
53
  from lib.infer_pack.models import (
54
  SynthesizerTrnMs256NSFsid,
@@ -147,12 +149,20 @@ def cleanup_files(file_paths):
147
  except Exception as e:
148
  print(f"Error deleting {path}: {e}")
149
 
 
 
 
 
 
 
150
  processed_audio_storage = {}
151
  @app.route('/convert_voice', methods=['POST'])
152
  def api_convert_voice():
153
  acquired = request_semaphore.acquire(blocking=False)
 
154
  if not acquired:
155
  return jsonify({"error": "Too many requests, please try again later"}), 429
 
156
  try:
157
 
158
  #if session.get('submitted'):
@@ -212,11 +222,14 @@ def api_convert_voice():
212
  #created_files.append(input_audio_path)
213
 
214
  #split audio
 
 
215
  cut_vocal_and_inst(input_audio_path,spk_id,unique_id)
216
  print("audio splitting performed")
217
  vocal_path = f"output/{spk_id}_{unique_id}/{split_model}/{spk_id}_input_audio_{unique_id}/vocals.wav"
218
  inst = f"output/{spk_id}_{unique_id}/{split_model}/{spk_id}_input_audio_{unique_id}/no_vocals.wav"
219
  print("*****before making call to convert ", unique_id)
 
220
  #output_queue = SimpleQueue()
221
  ctx = get_context('spawn')
222
  output_queue = ctx.Queue()
@@ -229,6 +242,7 @@ def api_convert_voice():
229
  print("*******waiting for process to complete ")
230
 
231
  output_path = output_queue.get()
 
232
  #if isinstance(output_path, Exception):
233
  # print("Exception in worker:", output_path)
234
  #else:
@@ -238,10 +252,11 @@ def api_convert_voice():
238
 
239
  processed_audio_storage[unique_id] = output_path1
240
  session['processed_audio_id'] = unique_id
241
-
242
  print(output_path1)
243
 
244
  #created_files.extend([vocal_path, inst, output_path])
 
245
  return jsonify({"message": "File processed successfully", "audio_id": unique_id}), 200
246
  finally:
247
  request_semaphore.release()
 
49
  # Initialize the semaphore with the maximum number of concurrent requests
50
  request_semaphore = Semaphore(MAX_CONCURRENT_REQUESTS)
51
 
52
+ task_status_tracker = {}
53
+
54
  #set_start_method('spawn', force=True)
55
  from lib.infer_pack.models import (
56
  SynthesizerTrnMs256NSFsid,
 
149
  except Exception as e:
150
  print(f"Error deleting {path}: {e}")
151
 
152
+ @app.route('/status/<audio_id>', methods=['GET'])
153
+ def get_status(audio_id):
154
+ # Retrieve the task status using the unique ID
155
+ status_info = task_status_tracker.get(audio_id, {"status": "Unknown ID", "percentage": 0})
156
+ return jsonify({"audio_id": audio_id, "status": status_info["status"], "percentage": status_info["percentage"]})
157
+
158
  processed_audio_storage = {}
159
  @app.route('/convert_voice', methods=['POST'])
160
  def api_convert_voice():
161
  acquired = request_semaphore.acquire(blocking=False)
162
+
163
  if not acquired:
164
  return jsonify({"error": "Too many requests, please try again later"}), 429
165
+ task_status_tracker[unique_id] = {"status": "Starting", "percentage": 0}
166
  try:
167
 
168
  #if session.get('submitted'):
 
222
  #created_files.append(input_audio_path)
223
 
224
  #split audio
225
+ task_status_tracker[unique_id] = {"status": "Processing: Step 1", "percentage": 30}
226
+
227
  cut_vocal_and_inst(input_audio_path,spk_id,unique_id)
228
  print("audio splitting performed")
229
  vocal_path = f"output/{spk_id}_{unique_id}/{split_model}/{spk_id}_input_audio_{unique_id}/vocals.wav"
230
  inst = f"output/{spk_id}_{unique_id}/{split_model}/{spk_id}_input_audio_{unique_id}/no_vocals.wav"
231
  print("*****before making call to convert ", unique_id)
232
+ task_status_tracker[unique_id] = "Processing: Step 2"
233
  #output_queue = SimpleQueue()
234
  ctx = get_context('spawn')
235
  output_queue = ctx.Queue()
 
242
  print("*******waiting for process to complete ")
243
 
244
  output_path = output_queue.get()
245
+ task_status_tracker[unique_id] = {"status": "Processing: Step 2", "percentage": 80}
246
  #if isinstance(output_path, Exception):
247
  # print("Exception in worker:", output_path)
248
  #else:
 
252
 
253
  processed_audio_storage[unique_id] = output_path1
254
  session['processed_audio_id'] = unique_id
255
+ task_status_tracker[unique_id] = {"status": "Finalizing", "percentage": 100}
256
  print(output_path1)
257
 
258
  #created_files.extend([vocal_path, inst, output_path])
259
+ task_status_tracker[unique_id]["status"] = "Completed"
260
  return jsonify({"message": "File processed successfully", "audio_id": unique_id}), 200
261
  finally:
262
  request_semaphore.release()