File size: 1,858 Bytes
e1412bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5f8297f
0951938
5f8297f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e1412bc
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
"""
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()


@rp_debugger.FunctionTimer
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":
        audio_base64 = job_input.get('audio_base64')
        if audio_base64 is None:
            return {"error":"Needs audio file as base64"}
        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(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

        result = MODEL.predict(s3_url,passage,process_audio,method_type)

        return result


runpod.serverless.start({"handler": run_voice_clone_job})