mzltest commited on
Commit
bc9184f
·
1 Parent(s): 55ae045

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -3
app.py CHANGED
@@ -10,6 +10,7 @@ import logging
10
  from logmmse import logmmse
11
  from typing import Tuple
12
  import time
 
13
 
14
  logging.getLogger('numba').setLevel(logging.WARNING)
15
 
@@ -34,7 +35,7 @@ class YukieGradio:
34
  "plw"], value="plw", interactive=True)
35
  self.dev = gr.Dropdown(label="设备(云端一般请勿切换,使用默认值即可)", choices=[
36
  "cuda", "cpu"], value="cpu", interactive=True)
37
- self.inMic = gr.Microphone(label="录音")
38
  self.inAudio = gr.Audio(label="上传音频")
39
  self.needLogmmse = gr.Checkbox(label="是否使用自带降噪")
40
  self.slice_db = gr.Slider(label="切片阈值(较嘈杂时-30,保留呼吸声时-50,一般默认-40)",
@@ -55,13 +56,24 @@ class YukieGradio:
55
  self.vcSubmit.click(infer, inputs=[self.inMic, self.inAudio, self.vcTransform, self.slice_db, self.needLogmmse, self.sid, self.dev], outputs=[
56
  self.outVcText, self.outAudio, self.f0_image],api_name="go")
57
 
58
-
 
 
 
 
 
 
 
 
 
 
 
59
  def infer(inMic, inAudio, transform, slice_db, lm, sid, dev):
60
  if inAudio != None:
61
  sampling_rate, inaudio = inAudio
62
  else:
63
  if inMic != None:
64
- sampling_rate, inaudio = inMic
65
  else:
66
  return "请上传一段音频后再次尝试", None
67
 
 
10
  from logmmse import logmmse
11
  from typing import Tuple
12
  import time
13
+ import requests
14
 
15
  logging.getLogger('numba').setLevel(logging.WARNING)
16
 
 
35
  "plw"], value="plw", interactive=True)
36
  self.dev = gr.Dropdown(label="设备(云端一般请勿切换,使用默认值即可)", choices=[
37
  "cuda", "cpu"], value="cpu", interactive=True)
38
+ self.inMic = gr.Textbox(label='url')
39
  self.inAudio = gr.Audio(label="上传音频")
40
  self.needLogmmse = gr.Checkbox(label="是否使用自带降噪")
41
  self.slice_db = gr.Slider(label="切片阈值(较嘈杂时-30,保留呼吸声时-50,一般默认-40)",
 
56
  self.vcSubmit.click(infer, inputs=[self.inMic, self.inAudio, self.vcTransform, self.slice_db, self.needLogmmse, self.sid, self.dev], outputs=[
57
  self.outVcText, self.outAudio, self.f0_image],api_name="go")
58
 
59
+ def download_audio(url):
60
+ # 发送请求
61
+ response = requests.get(url)
62
+ # 将响应内容读入内存
63
+ audio_bytes = BytesIO(response.content)
64
+ # 使用numpy将音频数据转为int16类型数组
65
+ audio_data = np.frombuffer(audio_bytes.read(), dtype=np.int16)
66
+ # 获取音频采样率
67
+ sample_rate = response.headers.get('Sample-Rate')
68
+ # 返回Tuple(int, numpy.array)
69
+ return int(sample_rate), audio_data
70
+
71
  def infer(inMic, inAudio, transform, slice_db, lm, sid, dev):
72
  if inAudio != None:
73
  sampling_rate, inaudio = inAudio
74
  else:
75
  if inMic != None:
76
+ sampling_rate, inaudio=download_audio(inMic)
77
  else:
78
  return "请上传一段音频后再次尝试", None
79