FunClip 基于ASR的视频剪辑实战:2小时多说话人录像按人拆出3段精华
【免费下载链接】FunClipFunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI.项目地址: https://gitcode.com/GitHub_Trending/fu/FunClip
FunClip 是一款开源、本地部署的视频剪辑工具,基于 FunASR 的 Paraformer 中文语音识别模型,上传视频即可得到带时间戳的识别结果,再按文本或说话人提取目标片段。
图:FunClip 主操作界面。左侧为 ASR 识别区与热词配置,右侧为 LLM 智能裁剪与按文本/说话人裁剪两个页签。
能力概览:视频剪辑的4项核心能力
- 带时间戳识别— Paraformer-Large 输出句级起止时间,ModelScope 下载量超 1300 万。
- 说话人分离— CAM++ 模型为每句标注 spk0/spk1 等 ID,可按人提取。
- 热词定制— 注册专有名词、人名,提升该词汇的识别准确率。
- 多段自由裁剪— 一次输出多个片段,自动生成全片与片段的 SRT 字幕。
运行原理:从视频到精华片段的数据流
输入视频文件 → FunASR(阿里开源的端到端语音识别工具包)先用 VAD(语音端点检测)切出语音段,再用 Paraformer(中文语音识别模型)生成带时间戳的句子级文本;勾选区分说话人时,CAM++(说话人识别模型)为每句分配 ID。裁剪时系统按输入文本或说话人 ID 反查时间戳,用 moviepy 切出对应区间,输出新视频与片段 SRT。
最小启动:3条命令跑起FunClip剪辑服务
git clone https://gitcode.com/GitHub_Trending/fu/FunClip cd FunClip pip install -r requirements.txt执行后得到 FunClip 目录,torch、gradio 等依赖包依次安装完成,无报错即成功。
提示:ASR 模型权重在首次启动时单独下载,建议在网络稳定的环境下执行。
python funclip/launch.py执行后终端显示 Gradio 服务已启动,浏览器打开localhost:7860即可看到中英文界面,左侧是视频输入区,右侧是裁剪区。
提示:英文音频加
-l en启动;Fun-ASR-Nano 与 SenseVoice 模型分别加-m fun-asr-nano、-m sensevoice。
实战场景:3个高频用例走查
2小时会议录音按3个决策主题拆出片段
适用于会议录像较长、只需保留特定议题片段的场景。
- 上传会议录音,点击"识别"获取全文与 SRT。
- 从识别结果复制三处决策段落,粘贴到"待裁剪文本",多段用
#分隔。 - 点击"裁剪",等待输出。
产出物:拼接好的新视频文件,外加裁剪片段的 SRT 字幕。
60分钟多说话人访谈提取嘉宾单人部分
适用于访谈、圆桌等多人交替发言的视频。
- 上传访谈视频,点击"识别+区分说话人"。
- 识别结果中每句带 spk0、spk1 等前缀。
- 在"待裁剪说话人"输入嘉宾的 ID,如
spk1。 - 点击"裁剪"。
图:多说话人裁剪流程。识别结果 SRT 每句带说话人 ID,右侧为按人裁剪后的视频与片段 SRT。
产出物:仅包含该嘉宾发言的视频,以及对应该片段的字幕。
90分钟网课自动裁出3个知识点带字幕片段
适用于课程录屏,需按知识点切片并直接分发。
- 上传网课视频,在"热词"填入课程专有名词后识别。
- 在文本框输入要提取的知识点语句,用
#分隔多段。 - 调整字幕字号与颜色,点击"裁剪+字幕"。
图:六步操作流程,覆盖上传视频、配置热词、ASR 识别、复制段落、设置偏移量到裁剪输出。
产出物:烧录字幕的课程片段视频与 SRT 文件,可直接用于二次分发。
进阶功能:解锁LLM智能裁剪与多说话人拼接
- LLM 智能裁剪— 适合"挑出精彩片段"这类无固定文本的意图;入口:右侧 LLM 页签改 Prompt、点"LLM推理"再点"AI Clip",接口层见 funclip/llm/。注意:LLM 输出须为
N. [开始-结束] 文本格式,时间戳才反查得到。 - 多说话人合并裁剪— 说话人框输入
spk0#spk2,两人片段依次拼接。注意:须先执行"识别+区分说话人"。 - 命令行裁剪— 自动化场景可用
videoclipper.py --stage 1/2两段式调用,见 funclip/videoclipper.py。注意:stage 2 需指定 stage 1 的 output_dir。
图:LLM 裁剪三步法,先选模型并配置 API Key,再执行 LLM 推理,最后点击智能裁剪。
常见问题:高频问题速查
- 识别结果不准怎么办— 在"热词"框填入专有名词与人名,空格分隔,仅支持中文热词;随后重新执行识别。
- 英文视频怎么裁剪— 用
python funclip/launch.py -l en启动英文模型,后续步骤与中文一致。 - 裁剪片段想前后多留一点— 调整"开始位置偏移"与"结束位置偏移"滑块,范围 -500 至 1000 毫秒,逐段生效。
- 如何裁出烧录字幕的视频— 使用"裁剪+字幕"按钮并预设字号、颜色;该功能需提前安装 imagemagick 并放置字体到
font/目录。 - 多语种高精度识别怎么选模型— 加
-m fun-asr-nano或-m sensevoice启动;两者不提供可靠字符级时间戳,按文本精确裁剪仍用默认 Paraformer。
适用边界:适合与不适合的场景
| 适合 | 不适合 |
|---|---|
| 中文会议、访谈、课程录像的片段提取 | 强噪声、多人同讲、重方言口音的识别 |
| 按文本/说话人/LLM 意图裁剪并输出 SRT | 调色、转场、配乐替换等专业后期剪辑 |
| 本地离线部署、单视频多段连续裁剪 | 数百视频的批量任务,无独立任务队列 |
延伸与参与:社区与文档入口
- 问题反馈与功能建议提交至仓库 Issues,贡献规范见 CONTRIBUTING.md。
- 版本说明见 docs/releases/v2.1.0.md,核心裁剪逻辑在 funclip/videoclipper.py。
- 团队正在推进反向时间段选择与静音段落移除两个方向。
【免费下载链接】FunClipFunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI.项目地址: https://gitcode.com/GitHub_Trending/fu/FunClip
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考