xJuuzouYTx commited on
Commit
a87192b
1 Parent(s): 6238bd4

[ADD] basic functions to inference

Browse files
Files changed (3) hide show
  1. app.py +32 -5
  2. inference.py +1 -1
  3. models/model.py +7 -2
app.py CHANGED
@@ -46,19 +46,46 @@ def convert_yt_to_wav(url):
46
  with gr.Blocks() as app:
47
  gr.HTML("<h1> Simple RVC Inference - by Juuxn 💻 </h1>")
48
 
 
 
 
 
 
 
 
49
  with gr.Tab("Inferencia"):
50
  model_url = gr.Textbox(placeholder="https://huggingface.co/AIVER-SE/BillieEilish/resolve/main/BillieEilish.zip", label="Url del modelo", show_label=True)
51
- audio_path = gr.Audio(label="Archivo de audio", show_label=True, type="filepath", )
52
- f0_method = gr.Dropdown(choices=["harvest", "pm", "crepe", "crepe-tiny", "mangio-crepe", "mangio-crepe-tiny", "rmvpe"],
53
- value="rmvpe",
54
- label="Algoritmo", show_label=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  # Salida
56
  with gr.Row():
57
  vc_output1 = gr.Textbox(label="Salida")
58
  vc_output2 = gr.Audio(label="Audio de salida")
59
 
60
  btn = gr.Button(value="Convertir")
61
- btn.click(infer, inputs=[model_url, f0_method, audio_path], outputs=[vc_output1, vc_output2])
62
 
63
  with gr.TabItem("TTS"):
64
  with gr.Row():
 
46
  with gr.Blocks() as app:
47
  gr.HTML("<h1> Simple RVC Inference - by Juuxn 💻 </h1>")
48
 
49
+ gr.HTML("<h4> El espacio actual usa solo cpu, así que es solo para inferencia. Se recomienda duplicar el espacio para no tener problemas con las colas de procesamiento. </h4>")
50
+ gr.Markdown(
51
+ "[![Duplicate this Space](https://huggingface.co/datasets/huggingface/badges/raw/main/duplicate-this-space-sm-dark.svg)](https://huggingface.co/spaces/juuxn/SimpleRVC?duplicate=true)\n\n"
52
+ )
53
+
54
+ gr.Markdown("Recopilación de modelos que puedes usar: RVC + Kits ai. **[RVC Community Models](https://docs.google.com/spreadsheets/d/1owfUtQuLW9ReiIwg6U9UkkDmPOTkuNHf0OKQtWu1iaI)**")
55
+
56
  with gr.Tab("Inferencia"):
57
  model_url = gr.Textbox(placeholder="https://huggingface.co/AIVER-SE/BillieEilish/resolve/main/BillieEilish.zip", label="Url del modelo", show_label=True)
58
+ with gr.Row():
59
+ with gr.Column():
60
+ audio_path = gr.Audio(label="Archivo de audio", show_label=True, type="filepath",)
61
+ index_rate = gr.Slider(minimum=0, maximum=1, label="Search feature ratio:", value=0.75, interactive=True,)
62
+ filter_radius1 = gr.Slider(minimum=0, maximum=7, label="Filtro (reducción de asperezas respiración)", value=3, step=1, interactive=True,)
63
+ with gr.Column():
64
+ f0_method = gr.Dropdown(choices=["harvest", "pm", "crepe", "crepe-tiny", "mangio-crepe", "mangio-crepe-tiny", "rmvpe"],
65
+ value="rmvpe",
66
+ label="Algoritmo", show_label=True)
67
+ vc_transform0 = gr.Slider(minimum=-12, label="Número de semitonos, subir una octava: 12, bajar una octava: -12", value=0, maximum=12, step=1)
68
+ protect0 = gr.Slider(
69
+ minimum=0, maximum=0.5, label="Protejer las consonantes sordas y los sonidos respiratorios. 0.5 para desactivarlo.", value=0.33,
70
+ step=0.01,
71
+ interactive=True,
72
+ )
73
+ resample_sr1 = gr.Slider(
74
+ minimum=0,
75
+ maximum=48000,
76
+ label="Re-muestreo sobre el audio de salida hasta la frecuencia de muestreo final. 0 para no re-muestrear.",
77
+ value=0,
78
+ step=1,
79
+ interactive=True,
80
+ )
81
+
82
  # Salida
83
  with gr.Row():
84
  vc_output1 = gr.Textbox(label="Salida")
85
  vc_output2 = gr.Audio(label="Audio de salida")
86
 
87
  btn = gr.Button(value="Convertir")
88
+ btn.click(infer, inputs=[model_url, f0_method, audio_path, index_rate, vc_transform0, protect0, resample_sr1, filter_radius1], outputs=[vc_output1, vc_output2])
89
 
90
  with gr.TabItem("TTS"):
91
  with gr.Row():
inference.py CHANGED
@@ -18,7 +18,7 @@ class Inference:
18
  feature_index_path="",
19
  f0_file=None,
20
  speaker_id=0,
21
- transposition=-2,
22
  f0_method="harvest",
23
  crepe_hop_length=160,
24
  harvest_median_filter=3,
 
18
  feature_index_path="",
19
  f0_file=None,
20
  speaker_id=0,
21
+ transposition=0,
22
  f0_method="harvest",
23
  crepe_hop_length=160,
24
  harvest_median_filter=3,
models/model.py CHANGED
@@ -65,19 +65,24 @@ def compress(modelname, files):
65
 
66
  return file_path
67
 
68
- def infer(model, f0_method, audio_file):
69
  print("****", audio_file)
70
  inference = Inference(
71
  model_name=model,
72
  f0_method=f0_method,
73
  source_audio_path=audio_file,
 
 
 
 
 
74
  output_file_name=os.path.join("./audio-outputs", os.path.basename(audio_file))
75
  )
76
  output = inference.run()
77
  if 'success' in output and output['success']:
78
  return output, output['file']
79
  else:
80
- return
81
 
82
 
83
  def post_model(name, model_url, version, creator):
 
65
 
66
  return file_path
67
 
68
+ def infer(model, f0_method, audio_file, index_rate, vc_transform0, protect0, resample_sr1, filter_radius1):
69
  print("****", audio_file)
70
  inference = Inference(
71
  model_name=model,
72
  f0_method=f0_method,
73
  source_audio_path=audio_file,
74
+ feature_ratio=index_rate,
75
+ transposition=vc_transform0,
76
+ protection_amnt=protect0,
77
+ resample=resample_sr1,
78
+ harvest_median_filter=filter_radius1,
79
  output_file_name=os.path.join("./audio-outputs", os.path.basename(audio_file))
80
  )
81
  output = inference.run()
82
  if 'success' in output and output['success']:
83
  return output, output['file']
84
  else:
85
+ return "Failed", None
86
 
87
 
88
  def post_model(name, model_url, version, creator):