wsj1995 commited on
Commit
bf146f1
·
1 Parent(s): 5dec745

feat: upload

Browse files
Files changed (1) hide show
  1. GPT_SoVITS/inference_webui.py +60 -7
GPT_SoVITS/inference_webui.py CHANGED
@@ -811,7 +811,6 @@ def get_tts_wav(
811
  sample_steps=8,
812
  if_sr=False,
813
  pause_second=0.3,
814
- uploadParams=None
815
  ):
816
  global cache
817
  if ref_wav_path:
@@ -1056,12 +1055,63 @@ def get_tts_wav(
1056
  audio_opt /= max_audio
1057
  else:
1058
  audio_opt = audio_opt.cpu().detach().numpy()
1059
- audioData = (audio_opt * 32767).astype(np.int16)
1060
- uploadAudio(opt_sr, audioData, uploadParams)
1061
- yield opt_sr, audioData
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1062
 
1063
 
1064
  def uploadAudio(opt_sr, audio_int16, uploadParams):
 
 
1065
  bio = io.BytesIO()
1066
  write(bio, opt_sr, audio_int16)
1067
  files = {
@@ -1237,8 +1287,10 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
1237
  with gr.Column():
1238
  inp_ref = gr.Audio(label=i18n(
1239
  "请上传3~10秒内参考音频,超过会报错!"), type="filepath", scale=13)
1240
- uploadParams = gr.Textbox(label=i18n("结果上传参数"),
1241
- value="", lines=2, max_lines=2)
 
 
1242
  with gr.Column(scale=13):
1243
  ref_text_free = gr.Checkbox(
1244
  label=i18n("开启无参考文本模式。不填参考文本亦相当于开启。")
@@ -1388,7 +1440,8 @@ with gr.Blocks(title="GPT-SoVITS WebUI", analytics_enabled=False, js=js, css=css
1388
  sample_steps,
1389
  if_sr_Checkbox,
1390
  pause_second_slider,
1391
- uploadParams
 
1392
  ],
1393
  [output],
1394
  )
 
811
  sample_steps=8,
812
  if_sr=False,
813
  pause_second=0.3,
 
814
  ):
815
  global cache
816
  if ref_wav_path:
 
1055
  audio_opt /= max_audio
1056
  else:
1057
  audio_opt = audio_opt.cpu().detach().numpy()
1058
+ yield opt_sr, (audio_opt * 32767).astype(np.int16)
1059
+
1060
+
1061
+ def run(
1062
+ ref_wav_path,
1063
+ prompt_text,
1064
+ prompt_language,
1065
+ text,
1066
+ text_language,
1067
+ how_to_cut=i18n("不切"),
1068
+ top_k=20,
1069
+ top_p=0.6,
1070
+ temperature=0.6,
1071
+ ref_free=False,
1072
+ speed=1,
1073
+ if_freeze=False,
1074
+ inp_refs=None,
1075
+ sample_steps=8,
1076
+ if_sr=False,
1077
+ pause_second=0.3,
1078
+ uploadParams=None,
1079
+ errCallbackUrl=None
1080
+ ):
1081
+ try:
1082
+ result = get_tts_wav(
1083
+ ref_wav_path,
1084
+ prompt_text,
1085
+ prompt_language,
1086
+ text,
1087
+ text_language,
1088
+ how_to_cut,
1089
+ top_k,
1090
+ top_p,
1091
+ temperature,
1092
+ ref_free,
1093
+ speed,
1094
+ if_freeze,
1095
+ inp_refs,
1096
+ sample_steps,
1097
+ if_sr,
1098
+ pause_second,
1099
+ )
1100
+ opt_sr, audio_data = next(result)
1101
+ uploadAudio(opt_sr, audio_data, uploadParams)
1102
+ return result
1103
+ except Exception as e:
1104
+ errCallback(errCallbackUrl, e)
1105
+ yield 0, None
1106
+
1107
+
1108
+ def errCallback(errCallbackUrl, e):
1109
+ requests.post(errCallbackUrl, data={"error": str(e)})
1110
 
1111
 
1112
  def uploadAudio(opt_sr, audio_int16, uploadParams):
1113
+ if not uploadParams:
1114
+ return
1115
  bio = io.BytesIO()
1116
  write(bio, opt_sr, audio_int16)
1117
  files = {
 
1287
  with gr.Column():
1288
  inp_ref = gr.Audio(label=i18n(
1289
  "请上传3~10秒内参考音频,超过会报错!"), type="filepath", scale=13)
1290
+ uploadParams = gr.Textbox(label=i18n("成功结果上传参数"),
1291
+ value="", lines=1, max_lines=1)
1292
+ errCallbackUrl = gr.Textbox(label=i18n("失败回调地址"),
1293
+ value="", lines=1, max_lines=1)
1294
  with gr.Column(scale=13):
1295
  ref_text_free = gr.Checkbox(
1296
  label=i18n("开启无参考文本模式。不填参考文本亦相当于开启。")
 
1440
  sample_steps,
1441
  if_sr_Checkbox,
1442
  pause_second_slider,
1443
+ uploadParams,
1444
+ errCallbackUrl
1445
  ],
1446
  [output],
1447
  )