提前进行输入路径检查,路径拼接换成 os.path.join

This commit is contained in:
xmimu
2024-01-22 00:53:18 +08:00
parent 48da30c4af
commit 0810d765d8
3 changed files with 12 additions and 4 deletions

View File

@@ -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(" ")

View File

@@ -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(