命令行执行 vs gradio界面执行 #58
-
|
python paraclipper/videoclipper.py --stage 1 --file bk_man_1.wav --output_dir ./output |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
|
命令行调用在stage1需要load模型,通过gradio调用是模型的加载相关操作已经在启动服务时完成了。 |
Beta Was this translation helpful? Give feedback.
-
嗯,那是不是可以做成http api,先加载模型,然后命令行相当于client来调用,这样应该会快很多 |
Beta Was this translation helpful? Give feedback.
-
|
是可以的,但是我觉得这个应用的场景很少有批量自动调用的,都需要结合每一条视频的识别结果去选择需要的段落。所以主要推的是gradio界面的调用方式。 |
Beta Was this translation helpful? Give feedback.
-
|
上面的维护者回答仍然准确:这里慢的主要不是“3 秒音频的纯推理”,而是 CLI 进程冷启动时重新加载模型。 当前主干仍然是这个结构:
所以,如果需要批量或程序化调用,不要为每个文件执行一次 python funclip/launch.py --listen --port 7860这也是当前 README 给出的本地 Gradio 服务方式。Gradio 本身就是 HTTP 服务;客户端建议使用 from gradio_client import Client
client = Client("http://127.0.0.1:7860")
print(client.view_api())本地完整 FunClip 的 API 名称和参数应以 当前公开 API 的可运行示例官方 FunClip Hugging Face Space 当前公开了三个固定端点,可以直接验证常驻模型的调用方式: pip install gradio_clientfrom gradio_client import Client, handle_file
client = Client("FunAudioLLM/FunClip")
video = {
"video": handle_file("input.mp4"),
"subtitles": None,
}
text = client.predict(video, api_name="/transcribe_video")
selector = client.predict(api_name="/build_selector")
# 选择前两个片段;继续复用同一个 client。
selected = [item[1] for item in selector["choices"][:2]]
clip, info = client.predict(
video,
selected,
api_name="/clip_video",
)我在当前 Space revision 公开 Space 使用共享的 CPU 实例,因此这些时间包含上传、排队和服务负载,不能当作本地模型 benchmark;这次实测只用于确认 API、会话复用和剪辑链路当前确实可用。该轻量 Space 目前只接收视频并使用中文 Paraformer;音频输入、多模型选择和完整 FunClip 功能请启动上面的本地服务。公开 Space 的实现也能看到模型是在模块加载阶段创建一次,而不是每个请求重新加载(源码)。 一句话总结:CLI 单次命令适合偶发任务;批量任务应让模型常驻,并通过同一个 Gradio/HTTP 客户端连续调用。 |
Beta Was this translation helpful? Give feedback.
命令行调用在stage1需要load模型,通过gradio调用是模型的加载相关操作已经在启动服务时完成了。