内空摘要
- 基于阿里巴巴通义实验室自研并开源的FunASR工具包
- 集成了阿里巴巴开源的工业级模型Paraformer-Large
- 集成了SeACo-Paraformer的热词定制化功能,提升识别效果
- 集成了CAM++说话人识别模型,自动识别出的说话人ID
- 支持多段自由剪辑,并且会自动返回全视频SRT字幕、目标段落SRT字幕
- 项目仓库:https://github.com/alibaba-damo-academy/FunClip
- 博文地址:https://blog.i68.ltd/archives/funclip
主要特点
- FunClip集成了多种大语言模型调用方式并提供了prompt配置接口,尝试通过大语言模型进行视频裁剪
- FunClip集成了阿里巴巴开源的工业级模型Paraformer-Large,是当前识别效果最优的开源中文ASR模型之一,Modelscope下载量1300w+次,并且能够一体化的准确预测时间戳。
- FunClip集成了SeACo-Paraformer的热词定制化功能,在ASR过程中可以指定一些实体词、人名等作为热词,提升识别效果。
- FunClip集成了CAM++说话人识别模型,用户可以将自动识别出的说话人ID作为裁剪目标,将某一说话人的段落裁剪出来。
- 通过Gradio交互实现上述功能,安装简单使用方便,并且可以在服务端搭建服务通过浏览器使用。
- FunClip支持多段自由剪辑,并且会自动返回全视频SRT字幕、目标段落SRT字幕,使用简单方便。
安装使用
-
FunClip的运行仅依赖于一个Python环境
克隆funclip仓库
git clone https://github.com/alibaba-damo-academy/FunClip.git
cd FunClip安装相关Python依赖
pip install -r ./requirements.txt
安装imagemagick(可选)
- 如果你希望使用自动生成字幕的视频裁剪功能,需要安装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 ImageMagick -- Download
然后确定您的Python安装位置,在其中的site-packages\moviepy\config_defaults.py
文件中修改IMAGEMAGICK_BINARY
为imagemagick的exe路径
-
下载你需要的字体文件,这里我们提供一个默认的黑体字体文件
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
# '-l en' for English audio recognize
# '-p xxx' for setting port number
# '-s True' for establishing service for public accessing
随后在浏览器中访问localhost:7860
即可看到如下图所示的界面,按如下步骤即可进行视频剪辑
- 上传你的视频(或使用下方的视频用例)
- (可选)设置热词,设置文件输出路径(保存识别结果、视频等)
- 点击识别按钮获取识别结果,或点击识别+区分说话人在语音识别基础上识别说话人ID
- 将识别结果中的选段复制到对应位置,或者将说话人ID输入到对应为止
- (可选)配置剪辑参数,偏移量与字幕设置等
- 点击"裁剪"或"裁剪+字幕"按钮
使用大语言模型裁剪请参考如下教程
B.通过命令行调用使用FunClip的相关功能
# 步骤一:识别
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'