Spaces:
Runtime error
Runtime error
| """ | |
| rp_handler.py for runpod worker | |
| rp_debugger: | |
| - Utility that provides additional debugging information. | |
| The handler must be called with --rp_debugger flag to enable it. | |
| """ | |
| import base64 | |
| import tempfile | |
| from rp_schema import INPUT_VALIDATIONS | |
| from runpod.serverless.utils import download_files_from_urls, rp_cleanup, rp_debugger | |
| from runpod.serverless.utils.rp_validator import validate | |
| import runpod | |
| import predict | |
| MODEL = predict.Predictor() | |
| MODEL.setup() | |
| def run_voice_clone_job(job): | |
| job_input = job['input'] | |
| method_type = job_input.get('method_type') | |
| print(method_type) | |
| if method_type not in ["create_voice","voice_clone","voice_clone_with_emotions","voice_clone_with_multi_lang"]: | |
| return {"error":"Please set method_type: available options, create_voice, voice_clone, voice_clone_with_emotions,voice_clone_with_multi_lang"} | |
| if method_type == "create_voice": | |
| s3_url = job_input.get("s3_url") | |
| audio_base64 = job_input.get('audio_base64') | |
| if audio_base64 is None and s3_url is None: | |
| return {"error":"set audio_base64 or s3_url"} | |
| cut_audio = job_input.get('cut_audio') | |
| process_audio = job_input.get('process_audio') | |
| print(process_audio) | |
| if process_audio is None: | |
| process_audio = False | |
| if cut_audio is None: | |
| cut_audio = 0 | |
| processed_urls = MODEL.createvoice(s3_url,audio_base64,cut_audio,process_audio) | |
| return processed_urls | |
| else: | |
| s3_url = job_input.get('s3_url') | |
| passage = job_input.get('passage') | |
| process_audio = job_input.get('process_audio') | |
| print(process_audio) | |
| if process_audio is None: | |
| process_audio = False | |
| output_extension = job_input.get('output_extension') | |
| if output_extension == None: | |
| output_extension = "mp3" | |
| if output_extension not in ["mp3","ogg"]: | |
| return {"error" : "only supports mp3 and ogg as output_extension"} | |
| print(output_extension) | |
| if method_type == 'voice_clone': | |
| run_type = job_input.get('run_type') | |
| if run_type is not None: | |
| result = MODEL.predict(s3_url,passage,process_audio,output_extension,run_type) | |
| else: | |
| result = MODEL.predict(s3_url,passage,process_audio,output_extension) | |
| if method_type == 'voice_clone_with_emotions': | |
| result = MODEL.predict_with_emotions(s3_url,passage,process_audio,output_extension) | |
| if method_type == 'voice_clone_with_multi_lang': | |
| result = MODEL.predict_with_multi_lang(s3_url,passage,process_audio,output_extension) | |
| return result | |
| runpod.serverless.start({"handler": run_voice_clone_job}) |