MCPcopy Index your code
hub / github.com/modelscope/FunClip

github.com/modelscope/FunClip @main

repository ↗ · DeepWiki ↗ · Ask this repo → · + Follow
66 symbols 249 edges 15 files 4 documented · 6% updated 6d ago★ 5,890
README

SVG Banners

「简体中文 | English

**

⚡ 开源、精准、方便的视频切片工具

** **

🧠 通过FunClip探索基于大语言模型的视频剪辑

**

alibaba-damo-academy%2FFunClip | Trendshift

近期更新 施工中 安装环境 使用方法 社区交流

FunClip是一款完全开源、本地部署的自动化视频剪辑工具,通过调用阿里巴巴通义实验室开源的FunASR Paraformer系列模型进行视频的语音识别,随后用户可以自由选择识别结果中的文本片段或说话人,点击裁剪按钮即可获取对应片段的视频(快速体验 Modelscope⭐ HuggingFace🤗)。

热点&特性🎨

  • 🔥FunClip集成了多种大语言模型调用方式并提供了prompt配置接口,尝试通过大语言模型进行视频裁剪~
  • FunClip集成了阿里巴巴开源的工业级模型Paraformer-Large,是当前识别效果最优的开源中文ASR模型之一,Modelscope下载量1300w+次,并且能够一体化的准确预测时间戳。
  • FunClip集成了SeACo-Paraformer的热词定制化功能,在ASR过程中可以指定一些实体词、人名等作为热词,提升识别效果。
  • FunClip集成了CAM++说话人识别模型,用户可以将自动识别出的说话人ID作为裁剪目标,将某一说话人的段落裁剪出来。
  • 通过Gradio交互实现上述功能,安装简单使用方便,并且可以在服务端搭建服务通过浏览器使用。
  • FunClip支持多段自由剪辑,并且会自动返回全视频SRT字幕、目标段落SRT字幕,使用简单方便。

欢迎体验使用,欢迎提出关于字幕生成或语音识别的需求与宝贵建议~

近期更新🚀

  • 2026/05/20 FunClip 现在支持 Fun-ASR-Nano 与 SenseVoice 模型。Fun-ASR-Nano 支持 31 种语言的高精度识别;SenseVoice 支持多语种识别,并额外输出情绪识别与音频事件检测标签。可通过 python funclip/launch.py -m fun-asr-nanopython funclip/launch.py -m sensevoice 启动体验。
  • 2024/06/12 FunClip现在支持识别与裁剪英文视频,通过python funclip/launch.py -l en来启动英文版本服务。
  • 🔥2024/05/13 FunClip v2.0.0加入大语言模型智能裁剪功能,集成qwen系列,gpt系列等模型,提供默认prompt,您也可以探索并分享prompt的设置技巧,使用方法如下:
  • 在进行识别之后,选择大模型名称,配置你自己的apikey;
  • 点击'LLM智能段落选择'按钮,FunClip将自动组合两个prompt与视频的srt字幕;
  • 点击'LLM智能裁剪'按钮,基于前一步的大语言模型输出结果,FunClip将提取其中的时间戳进行裁剪;
  • 您可以尝试改变prompt来借助大语言模型的能力来获取您想要的结果;
  • 2024/05/09 FunClip更新至v1.1.0,包含如下更新与修复:
  • 支持配置输出文件目录,保存ASR中间结果与视频裁剪中间文件;
  • UI升级(见下方演示图例),视频与音频裁剪功能在同一页,按钮位置调整;
  • 修复了由于FunASR接口升级引入的bug,该bug曾导致一些严重的剪辑错误;
  • 支持为每一个段落配置不同的起止时间偏移;
  • 代码优化等;
  • 2024/03/06 命令行调用方式更新与问题修复,相关功能可以正常使用。
  • 2024/02/28 FunClip升级到FunASR1.0模型调用方式,通过FunASR开源的SeACo-Paraformer模型在视频剪辑中进一步支持热词定制化功能。
  • 2024/02/28 原FunASR-APP/ClipVideo更名为FunClip。

施工中🌵

  • [x] FunClip将会集成Whisper模型,以提供英文视频剪辑能力(Whisper模型的时间戳预测功能需要显存较大,我们在FunASR中添加了Paraformer英文模型的时间戳预测支持以允许FunClip支持英文识别裁剪)。
  • [x] 集成大语言模型的能力,提供智能视频剪辑相关功能。大家可以基于FunClip探索使用大语言模型的视频剪辑~
  • [ ] 给定文本段落,反向选取其他段落。
  • [ ] 删除视频中无人说话的片段。

安装🔨

Python环境安装

FunClip的运行仅依赖于一个Python环境,若您是一个小白开发者,可以先了解下如何使用Python,pip等~

# 克隆funclip仓库
git clone https://github.com/alibaba-damo-academy/FunClip.git
cd FunClip
# 安装相关Python依赖
pip install -r ./requirements.txt

安装imagemagick(可选)

  1. 如果你希望使用自动生成字幕的视频裁剪功能,需要安装imagemagick

  2. Ubuntu

apt-get -y update && apt-get -y install ffmpeg imagemagick
sed -i 's/none/read,write/g' /etc/ImageMagick-6/policy.xml
  • MacOS
brew install imagemagick
sed -i '' 's/none/read,write/g' "$(brew --prefix imagemagick)/etc/ImageMagick-7/policy.xml" 
  • Windows

首先下载并安装imagemagick https://imagemagick.org/script/download.php#windows

然后确定您的Python安装位置,在其中的site-packages\moviepy\config_defaults.py文件中修改IMAGEMAGICK_BINARY为imagemagick的exe路径

  1. 下载你需要的字体文件,这里我们提供一个默认的黑体字体文件
wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ClipVideo/STHeitiMedium.ttc -O font/STHeitiMedium.ttc

使用FunClip

A.在本地启动Gradio服务

python funclip/launch.py
# '-m fun-asr-nano' 使用 Fun-ASR-Nano 模型(更高精度,支持 31 种语言)
# '-m sensevoice' 使用 SenseVoice 模型(多语种 ASR + 情绪识别 + 音频事件检测)
# '-l en' for English audio recognize
# '-p xxx' for setting port number
# '-s True' for establishing service for public accessing

模型选择快速开始

场景 启动命令
默认中文视频裁剪,使用 Paraformer python funclip/launch.py
使用 Fun-ASR-Nano 进行 31 种语言识别 python funclip/launch.py -m fun-asr-nano
使用 SenseVoice 进行多语种识别、情绪识别和音频事件检测 python funclip/launch.py -m sensevoice
使用 Paraformer 英文模型裁剪英文视频 python funclip/launch.py -l en

随后在浏览器中访问localhost:7860即可看到如下图所示的界面,按如下步骤即可进行视频剪辑 1. 上传你的视频(或使用下方的视频用例) 2. (可选)设置热词,设置文件输出路径(保存识别结果、视频等) 3. 点击识别按钮获取识别结果,或点击识别+区分说话人在语音识别基础上识别说话人ID 4. 将识别结果中的选段复制到对应位置,或者将说话人ID输入到对应为止 5. (可选)配置剪辑参数,偏移量与字幕设置等 6. 点击“裁剪”或“裁剪+字幕”按钮

使用大语言模型裁剪请参考如下教程

B.通过命令行调用使用FunClip的相关功能

# 下载下面命令用到的示例视频
mkdir -p examples
wget "https://huggingface.co/spaces/R1ckShi/FunClip/resolve/main/examples/2022%E4%BA%91%E6%A0%96%E5%A4%A7%E4%BC%9A_%E7%89%87%E6%AE%B5.mp4" -O "examples/2022云栖大会_片段.mp4"

# 步骤一:识别
python funclip/videoclipper.py --stage 1 \
                       --file examples/2022云栖大会_片段.mp4 \
                       --output_dir ./output
# ./output中生成了识别结果与srt字幕等
# 步骤二:裁剪
python funclip/videoclipper.py --stage 2 \
                       --file examples/2022云栖大会_片段.mp4 \
                       --output_dir ./output \
                       --dest_text '我们把它跟乡村振兴去结合起来,利用我们的设计的能力' \
                       --start_ost 0 \
                       --end_ost 100 \
                       --output_file './output/res.mp4'

C.通过创空间与Space体验FunClip

FunClip@Modelscope创空间⭐

FunClip@HuggingFace Space🤗

社区交流🍟

FunClip开源项目由FunASR社区维护,欢迎加入社区,交流与讨论,以及合作开发等。

钉钉群 微信群

|

|

通过FunASR了解语音识别相关技术

FunASR是阿里巴巴通义实验室开源的端到端语音识别工具包,目前已经成为主流ASR工具包之一。其主要包括Python pipeline,SDK部署与海量开源工业ASR模型等。

📚FunASR论文:

📚SeACo-Paraformer论文:

⭐支持FunASR:

Core symbols most depended-on inside this repo

save_text_to_file
called by 8
funclip/launch.py
video_clip
called by 6
funclip/videoclipper.py
srt
called by 5
funclip/utils/subtitle_utils.py
time
called by 5
funclip/utils/subtitle_utils.py
recog
called by 4
funclip/videoclipper.py
clip
called by 4
funclip/videoclipper.py
time_convert
called by 4
funclip/utils/subtitle_utils.py
text
called by 4
funclip/utils/subtitle_utils.py

Shape

Function 37
Method 22
Class 7

Languages

Python100%

Modules by API surface

funclip/videoclipper.py13 symbols
funclip/launch.py11 symbols
tests/test_recognition_result_compat.py9 symbols
funclip/utils/trans_utils.py9 symbols
funclip/utils/subtitle_utils.py9 symbols
tests/test_twelvelabs_pegasus.py6 symbols
funclip/utils/argparse_tools.py4 symbols
funclip/llm/twelvelabs_api.py2 symbols
funclip/llm/qwen_api.py1 symbols
funclip/llm/openai_api.py1 symbols
funclip/llm/g4f_openai_api.py1 symbols

Dependencies from manifests, versioned

funasr1.1.2 · 1×
gradio4.31.3 · 1×
moviepy1.0.3 · 1×
numpy1.26.4 · 1×
scikit-learn1.3.2 · 1×
torch1.13 · 1×
twelvelabs1.2.8 · 1×

For agents

$ claude mcp add FunClip \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact