综合介绍
FunClip是一款完全开源的本地化自动视频剪辑工具,由阿里巴巴达摩院TONGYI语音实验室开发。该工具集成了工业级的 Paraformer-Large 语音识别模型,可以准确识别视频中的语音内容并转换为文字。特别之处在于,FunClip支持通过大语言模型(LLM)实现智能化剪辑,并集成了说话人识别功能,能够自动识别不同说话者的身份。用户可以通过简单的界面操作,选择感兴趣的文本片段,一键导出对应的视频片段。工具支持多段自由剪辑,并能自动生成完整的SRT字幕文件和目标片段字幕,为用户提供了简单便捷的视频处理体验。最新版本已支持中英双语识别,并提供了丰富的字幕嵌入和导出功能,是一款功能强大且易用的开源视频处理工具。
FunClip优化版——Private-ASR
Private-ASR 基于开源项目 FunClip 进行修改,集成了自动语音识别 (ASR)、说话人分离、SRT 字幕编辑以及基于 LLM 的总结功能。项目使用 Gradio 提供了一个直观易用的用户界面。
功能列表
- 精准语音识别:集成阿里巴巴开源的Paraformer-Large模型,支持中英文语音识别
- LLM智能剪辑:支持通过大语言模型智能分析内容并自动确定剪辑点位
- 说话人识别:整合CAM++说话人识别模型,可自动识别不同说话者身份
- 热词定制:支持SeACo-Paraformer的热词定制功能,提高特定词汇识别准确率
- 多段剪辑:支持自由选择多个文本片段进行批量剪辑
- 字幕生成:自动生成完整视频SRT字幕和目标片段字幕
- 双语支持:支持中文和英文视频的识别与剪辑
- 本地部署:完全开源,支持本地化部署,保护隐私数据安全
- 界面友好:基于Gradio框架开发,提供简洁直观的Web操作界面
使用帮助
1. 安装部署
基础环境安装
- 克隆代码仓库:
git clone https://github.com/alibaba-damo-academy/FunClip.git
cd FunClip
- 安装Python依赖:
pip install -r ./requirements.txt
可选功能安装(用于嵌入字幕)
如需使用字幕嵌入功能,需要安装ffmpeg和imagemagick:
- 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' /usr/local/Cellar/imagemagick/7.1.1-8_1/etc/ImageMagick-7/policy.xml
- Windows系统:
- 从官网下载并安装imagemagick:https://imagemagick.org/script/download.php#windows
- 找到Python安装路径,修改
site-packages\moviepy\config_defaults.py
中的IMAGEMAGICK_BINARY
为imagemagick安装路径 - 下载字体文件:
wget https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ClipVideo/STHeitiMedium.ttc -O font/STHeitiMedium.ttc
2. 使用方法
A. 本地Gradio服务使用
- 启动服务:
python funclip/launch.py
# 使用 -l en 参数支持英文识别
# 使用 -p xxx 设置端口号
# 使用 -s True 开启公共访问
- 访问
localhost:7860
,按照以下步骤操作:
- 步骤1:上传视频文件
- 步骤2:将需要的文本片段复制到"Text to Clip"区域
- 步骤3:根据需要调整字幕设置
- 步骤4:点击"Clip"或"Clip and Generate Subtitles"进行剪辑
B. LLM智能剪辑
- 识别完成后,选择大语言模型并配置apikey
- 点击"LLM Inference"按钮,系统将自动结合视频字幕和预设提示词
- 点击"AI Clip"按钮,基于大语言模型的输出结果自动提取时间戳进行剪辑
- 可以通过修改提示词来优化大语言模型的输出结果
C. 命令行使用
- 语音识别:
python funclip/videoclipper.py --stage 1 \
--file examples/video.mp4 \
--output_dir ./output
- 视频剪辑:
python funclip/videoclipper.py --stage 2 \
--file examples/video.mp4 \
--output_dir ./output \
--dest_text '待剪辑文本' \
--start_ost 0 \
--end_ost 100 \
--output_file './output/res.mp4'
此外,用户还可以通过以下在线平台体验FunClip的功能:
- ModelScope空间:FunClip@Modelscope Space
- HuggingFace空间:FunClip@HuggingFace Space
如遇到使用问题,可以通过项目提供的钉钉群或微信群获取社区支持。