|
import RVC |
|
from scipy.io import wavfile |
|
import numpy as np |
|
import os |
|
import uuid |
|
import io |
|
import requests |
|
def get_models(): |
|
return RVC.names |
|
|
|
def single_run(input_audio0, model_name, vc_transform, opt_input="opt", f0method0 = "pm", filter_radius0 = 3, file_index1 = "", file_index2 = "", |
|
index_rate1 = 0.75, resample_sr0 = 0, rms_mix_rate0 = 0.25, protect0 = 0.33, f0_file = None): |
|
|
|
RVC.get_vc(model_name, protect0, protect0) |
|
spk_item = 0 |
|
|
|
|
|
|
|
vc_output1, vc_output2 = RVC.vc_single( |
|
spk_item, |
|
input_audio0, |
|
vc_transform, |
|
f0_file, |
|
f0method0, |
|
file_index1, |
|
file_index2, |
|
index_rate1, |
|
filter_radius0, |
|
resample_sr0, |
|
rms_mix_rate0, |
|
protect0 |
|
) |
|
random_string = str(uuid.uuid4()) |
|
filename = os.path.basename(input_audio0) |
|
name, extension = os.path.splitext(filename) |
|
new_file_name = f"{name}_{random_string}{extension}" |
|
|
|
sample_rate, audio_data = vc_output2 |
|
|
|
|
|
|
|
url="https://filebin.net/dajeii61xk3c4oxi" |
|
print(upload_audio(url, audio_data, sample_rate, new_file_name)) |
|
|
|
return f"{url}/{new_file_name}" |
|
|
|
|
|
def upload_audio(url, audio_data, sample_rate, filename): |
|
try: |
|
|
|
wav_bytes = io.BytesIO() |
|
scaled_audio_data = np.int16(audio_data) |
|
wavfile.write(wav_bytes, sample_rate, scaled_audio_data) |
|
wav_bytes.seek(0) |
|
|
|
files = {'file': (filename, wav_bytes)} |
|
|
|
response = requests.post(f"{url}/{filename}", files=files) |
|
|
|
response.raise_for_status() |
|
|
|
return response.json() |
|
except Exception as e: |
|
raise RuntimeError(f"Failed to upload audio: {e}") |
|
|
|
|
|
def uvr(dir_wav_input, wav_inputs = None, model_choose = RVC.uvr5_names[0], opt_vocal_root ="opt", opt_ins_root = "opt", format0 = "wav"): |
|
|
|
vc_output4 = RVC.uvr( |
|
dir_wav_input, |
|
) |
|
for value in vc_output4: |
|
print(value) |
|
|
|
|
|
print(single_run("https://www.learningcontainer.com/wp-content/uploads/2020/02/Kalimba.mp3", "mymodelbilawal.pth", -2)) |