v2deepvoice / backend /core /tasks.py
raghu2's picture
feat: integrate 4-stem separation, de-reverb, and ui enhancements
3358253
Raw
History Blame Contribute Delete
1.63 kB
import time
from core.state import state
from core.database import db_manager
from services.audio_service import process_audio_file
def run_audio_processing(task_id: str, file_path: str, isolate_vocals: bool, stem_count: int, de_reverb: bool, enhance_speech: bool, lyric_sync: bool, user_email: str):
try:
def progress_callback(progress_percent, message, **kwargs):
update_data = {
"progress": progress_percent,
"message": message
}
update_data.update(kwargs)
db_manager.upsert_task(task_id, update_data)
zip_path = process_audio_file(
file_path,
task_id,
progress_callback,
isolate_vocals=isolate_vocals,
stem_count=stem_count,
de_reverb=de_reverb,
enhance_speech=enhance_speech,
lyric_sync=lyric_sync
)
db_manager.upsert_task(task_id, {
"status": "completed",
"progress": 100,
"message": "Processing complete! Ready to download.",
"result_path": zip_path,
"completed_time": time.time()
})
except Exception as e:
if str(e) == "Task cancelled by user":
db_manager.upsert_task(task_id, {
"status": "cancelled",
"message": "Task cancelled by user"
})
else:
db_manager.upsert_task(task_id, {
"status": "failed",
"message": str(e)
})
print(f"Error processing {task_id}: {e}")