Update app.py
Browse files
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.
|
| 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
|
| 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 |
|