在本地部署阿里开源项目FunClip大语言模型视频智能剪辑

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

下面开始部署:

拉取项目时间:2024-12-19

电脑系统:Windows11

一、本次项目使用的基础依赖环境,根据自己电脑配置选择版本(或者根据项目要求配置环境),如已安装配置可跳过:

1、安装CUDA,官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive

# 可先检查显卡支持的最大CUDA版本,命令行指令
nvidia-smi

2、安装配置CUDNN,官方下载地址:https://developer.nvidia.com/rdp/cudnn-archive

# 需下载CUDA支持的版本,输入以下CMD指令,能返回版本号 
nvcc -V

3、 安装Git,官方下载地址:https://git-scm.com/downloads

# 输入以下CMD指令,能返回版本号 
git --version 

4、安装Python,官方下载地址:https://www.python.org/downloads

# 输入以下CMD指令,能返回版本号(我当前项目用的是Python3.10.11)
python --version

5、安装FFmpeg,官方下载地址:https://www.ffmpeg.org/download.html

选择 Windows builds by BtbN 下载,在选择对应的版本,我这里下载的是:ffmpeg-master-latest-win64-gpl.zip,下载放到需要用到的项目相关目录,待用

PS:输入CMD命令,如提示错误可能是环境变量没配置,自行按需配置

二、拉取FunClip项目

# 进入到需要安装的本地目录
cd E:\Program\Python
# 克隆funclip仓库
git clone https://github.com/alibaba-damo-academy/FunClip.git

FunClip项目下面有一个相关依赖的requirements.txt,它这里现阶段(2024-12-19)有个小的错误

项目拉取后我们先解决这个错误,把requirements里边的文本替换为下边内容

# 带井号注释的行需要删掉
librosa
soundfile
scikit-learn>=1.3.2
funasr>=1.1.2
# Moviepy这个依赖它没有指定版本,如果用最新的会导致部分环境下可能无法正常使用
moviepy==1.0.3
numpy==1.26.4
gradio
modelscope
torch>=1.13
torchaudio
openai
g4f
dashscope
curl_cffi
# 以下两个是额外需要加上去的,似乎是FunClip缺失的依赖,至少我本地电脑运行的时候提示缺失错误
onnx
onnxconverter_common

三、开始部署

# 首先重新打开CMD进入项目目录
CD E:\Program\Python\FunClip
# 在当前目录下创建一个虚拟环境,Python环境的版本可以按需指定
python -m venv env

虚拟环境部署好后,通过虚拟环境安装项目所需的相关依赖

# 注意:以下三部分命令指需要执行其中一部分即可

#在项目目录下CMD执行下边命令
.\env\Scripts\python.exe -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --extra-index-url https://download.pytorch.org/whl/cu124 

# 或者把pytorch全部安装
.\env\Scripts\python.exe -m pip install -r./requirements.txt torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# 或者单独安装
.\env\Scripts\python.exe -m pip install -r ./requirements.txt
.\env\Scripts\python.exe -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

# 以上命令表示通过虚拟环境的.\env\Scripts\python.exe安装清华源的requirements配置的相关依赖,并且安装pytorch

由于这个项目可能需要用到GPU,所以要安装pytorch依赖(官网:https://pytorch.org)

FunClip官方似乎没有要求这个,不安装的时候其实也可以使用这个项目,但是识别结果很慢,有性能好的N卡的话,建议打上pytorch依赖包(非N卡可以略过)

四、修复FunClip在当前环境下的错误,非Windows可能没有这些错误,没测试具体情况不知道,当前修复仅对本次部署的相关环境生效

1、我这里需要用到字幕裁剪功能ImageMagick,所以先去下载ImageMagick并安装,官网下载地址:https://imagemagick.org/script/download.php#windows

安装后复制一份ImageMagick到项目根目录

2、将ffmpeg-master-latest-win64-gpl.zip解压后,命名ffmpeg也放到根目录

在本地部署阿里开源项目FunClip大语言模型视频智能剪辑

3、编辑FunClip\funclip\videoclipper.py文件,替换相关的导入模块即可

import re
import os
import sys
# 将路径替换为你电脑上ImageMagick中magick.exe的真实路径(如果不用字幕裁剪功能,可以忽略不管)
os.environ['IMAGEMAGICK_BINARY'] = r'.\ImageMagick\magick.exe'
import copy
import librosa
import logging
import argparse
import numpy as np
import soundfile as sf
from moviepy.editor import *
import moviepy.editor as mpy
from moviepy.video.tools.subtitles import SubtitlesClip, TextClip
from moviepy.editor import VideoFileClip, concatenate_videoclips
# from moviepy.video.compositing import CompositeVideoClip 修改如下
from moviepy.video.compositing.CompositeVideoClip import CompositeVideoClip
from utils.subtitle_utils import generate_srt, generate_srt_clip
from utils.argparse_tools import ArgumentParser, get_commandline_args
from utils.trans_utils import pre_proc, proc, write_state, load_state, proc_spk, convert_pcm_to_float

4、编辑FunClip\funclip\launch.py文件,替换相关的导入模块即可

from http import server
import os
# 配置ffmpeg临时环境变量
ffmpeg_path = r'.\ffmpeg\bin'
os.environ['PATH'] = os.environ.get('PATH', '') + ';' + ffmpeg_path
import logging
import argparse
# 配置GRADIO临时路径
os.environ['GRADIO_TEMP_DIR'] = r'.\TEMP\gradio'
import gradio as gr
# 配置模型下载默认路径
os.environ['MODELSCOPE_CACHE'] = r'.\modelscope'
from funasr import AutoModel
from videoclipper import VideoClipper
from llm.openai_api import openai_call
from llm.qwen_api import call_qwen_model
from llm.g4f_openai_api import g4f_openai_call
from utils.trans_utils import extract_timestamps
from introduction import top_md_1, top_md_3, top_md_4

接下来运行命令启动项目即可

.\env\Scripts\python.exe funclip/launch.py

然后就是把启动打包成bat,就可以一键启动项目,并也可以正常使用

以上部署方案可能会因为项目源的更新导致失效,如官方有更新,导致部署错误,欢迎联系指出修正

关于怎么把项目打包成整合包发给别人,可以看另外一篇文字《Python项目整合包通用打包常用命令和方法

日常记录

世界,您好!

2024-11-17 23:21:55

Python

Python项目整合包通用打包常用命令和方法

2024-12-19 14:12:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索