From 6575ef30c4b08a7b91ba05e054fe1ab3a5b84224 Mon Sep 17 00:00:00 2001 From: xmimu <1101588023@qq.com> Date: Mon, 22 Jan 2024 00:53:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=89=8D=E8=BF=9B=E8=A1=8C=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E8=B7=AF=E5=BE=84=E6=A3=80=E6=9F=A5=EF=BC=8C=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E6=8B=BC=E6=8E=A5=E6=8D=A2=E6=88=90=20os.path.join?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/my_utils.py | 11 ++++++++--- tools/slice_audio.py | 2 +- webui.py | 3 +++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/tools/my_utils.py b/tools/my_utils.py index 776939d..abb2a44 100644 --- a/tools/my_utils.py +++ b/tools/my_utils.py @@ -1,3 +1,4 @@ +import platform import ffmpeg import numpy as np @@ -7,9 +8,7 @@ def load_audio(file, sr): # https://github.com/openai/whisper/blob/main/whisper/audio.py#L26 # This launches a subprocess to decode audio while down-mixing and resampling as necessary. # Requires the ffmpeg CLI and `ffmpeg-python` package to be installed. - file = ( - file.strip(" ").strip('"').strip("\n").strip('"').strip(" ") - ) # 防止小白拷路径头尾带了空格和"和回车 + file = clean_path(file) # 防止小白拷路径头尾带了空格和"和回车 out, _ = ( ffmpeg.input(file, threads=0) .output("-", format="f32le", acodec="pcm_f32le", ac=1, ar=sr) @@ -19,3 +18,9 @@ def load_audio(file, sr): raise RuntimeError(f"Failed to load audio: {e}") return np.frombuffer(out, np.float32).flatten() + + +def clean_path(path_str): + if platform.system() == 'Windows': + path_str = path_str.replace('/', '\\') + return path_str.strip(" ").strip('"').strip("\n").strip('"').strip(" ") diff --git a/tools/slice_audio.py b/tools/slice_audio.py index 79592de..4c0e270 100644 --- a/tools/slice_audio.py +++ b/tools/slice_audio.py @@ -11,7 +11,7 @@ def slice(inp,opt_root,threshold,min_length,min_interval,hop_size,max_sil_kept,_ if os.path.isfile(inp): input=[inp] elif os.path.isdir(inp): - input=["%s/%s"%(inp,name)for name in sorted(list(os.listdir(inp)))] + input=[os.path.join(inp, name) for name in sorted(list(os.listdir(inp)))] else: return "输入路径存在但既不是文件也不是文件夹" slicer = Slicer( diff --git a/webui.py b/webui.py index 2c55941..1d82e25 100644 --- a/webui.py +++ b/webui.py @@ -3,6 +3,7 @@ import platform import psutil import os import signal +from tools import my_utils warnings.filterwarnings("ignore") torch.manual_seed(233333) @@ -267,6 +268,8 @@ def close1Bb(): ps_slice=[] def open_slice(inp,opt_root,threshold,min_length,min_interval,hop_size,max_sil_kept,_max,alpha,n_parts): global ps_slice + inp = my_utils.clean_path(inp) + opt_root = my_utils.clean_path(opt_root) if(os.path.exists(inp)==False): yield "输入路径不存在",{"__type__":"update","visible":True},{"__type__":"update","visible":False} return