本项目基于开源项目 FunClip 进行修改,集成了自动语音识别 (ASR)、说话人分离、SRT 字幕编辑以及基于 LLM 的总结功能。项目使用 Gradio 提供了一个直观易用的用户界面。
更新: 添加了本地部署/Docker部署的GPU推理支持. Docker的GPU加速请查看这个
示例:服务器部署+私有LLM API
本项目基于开源项目 FunClip(由 阿里巴巴达摩院 提供),在此基础上进行了功能修改,项目功能包含:
- ASR 总结功能:通过 LLM(如 OpenAI GPT、自定义 API)进行语音识别结果的总结。
- 动态 SRT 替换:支持通过映射规则替换字幕中的说话人标识。
- 轻量级部署:提供 Docker 镜像与 Python 本地部署支持。
-
自动语音识别 (ASR):
- 支持视频和音频输入。
- 输出文本内容及 SRT 字幕。
-
说话人分离 (SD):
- 在多说话人音频/视频中识别不同说话人。
-
SRT 字幕编辑:
- 支持自定义映射替换字幕中的说话人标识。
-
LLM 总结:
- 使用 GPT 模型对 ASR 结果进行总结和提取关键信息。
- 支持自定义 API 配置。
-
灵活部署:
- 提供 Docker 镜像,适用于生产环境。
- 支持 Python 环境进行本地开发和测试。
- Docker:适用于容器化生产部署。
- Python 3.9+:适用于本地开发和测试。
项目依赖可参考 requirements.txt
文件。
创建一个文件夹用于部署项目,在文件夹创建docker-compose.yml
文件和.env
文件(可选,参考.env.example)
docker-compose.yml
内容:
services:
audio-processor:
image: motorbottle/private-asr:latest # 支持arm64和amd64
container_name: private-asr
ports:
- "7860:7860" # 端口映射
volumes:
- ./.env:/app/.env # 映射 .env 文件
working_dir: /app # 设置工作目录
restart: unless-stopped # 确保服务异常退出时重启
命令行cd到文件所在目录,用以下指令启动部署,首次运行会下载识别模型,等待log中出现 WARNING:root:Initializing VideoClipper.
即可访问:
docker-compose up -d
Gradio 用户界面将在以下地址访问:
http://localhost:7860
默认账户motor,密码admin
使用以下命令构建 Docker 镜像:
docker build -t private-asr:latest .
使用以下 docker-compose.yml
文件进行部署:
services:
audio-processor:
image: private-asr:latest # 使用已构建的镜像
container_name: private-asr
ports:
- "7860:7860" # 端口映射
volumes:
- ./.env:/app/.env # 仅映射 .env 文件
working_dir: /app # 设置工作目录
restart: unless-stopped # 确保服务异常退出时重启
启动部署:
docker-compose up -d
Gradio 用户界面将在以下地址访问:
http://localhost:7860
默认账户motor,密码admin
-
克隆仓库:
git clone https://github.com/MotorBottle/Audio-Processor.git cd audio-processor
-
安装依赖:
python3 -m venv .venv source .venv/bin/activate pip install --no-cache-dir -r requirements.txt
-
安装 FFmpeg(Linux 用户):
sudo apt-get update sudo apt-get install -y ffmpeg
(Mac 用户使用 brew 安装)
brew install ffmpeg
使用以下命令启动 Gradio 服务:
python funclip/launch.py --listen
Gradio 用户界面将在以下地址访问:
http://localhost:7860
默认用户名:motor,密码:admin
项目支持通过 .env
文件配置账户及 API 密钥等信息。
示例 .env
文件:
USERNAME=motor
PASSWORD=admin
OPENAI_API_KEY=your_openai_key
OPENAI_API_BASE=https://your-custom-api.com
- 上传音频或视频文件。
- 执行 ASR 识别 或 说话人分离。
- 使用映射规则替换 SRT 字幕中的说话人名称。
- 使用 LLM 总结 功能对 ASR 结果进行总结,提取主题、要点和结论。
本项目基于 MIT 协议 开源,欢迎提交贡献。
原项目 FunClip 地址:
FunClip on GitHub