在快节奏的学习和工作中,现在视频已经逐渐成为了我们获取信息的主要载体。
然而相对文字稿件来说,虽然视频的内容表现形式更多样,但信息密度要明显更低。
完整观看一部长视频不仅容易耽误时间,而且当我们需要对某段关键信息进行复盘,或想要快速定位某个知识点时,单纯依靠拖拽进度条既不方便,也难以做到精准定位。
为了解决这个痛点,今天向大家分享一款非常实用的开源工具——AI-Video-Transcriber,该项目在GitHub上已经收获了2.2K的Star。
https://github.com/wendy7756/AI-Video-Transcriber/
作为一款高度自动化的视频转录与摘要工具,AI-Video-Transcriber全面兼容 YouTube、Bilibili、抖音等 30 多个国内外主流视频平台,只需要将在线视频的网址粘贴进去,即可将视频转录成文字版本,而且完美支持移动设备浏览器,随时随地都能方便使用。

不同于生硬的机器听写,它在转录后会自动进行错别字修改、句子完整化处理和智能分段,生成的文本排版清晰,可读性很强。

这个项目核心的语音转文字环节使用了Faster-Whisper模型,完全可以在本地设备上离线运行,这不仅保护了视频数据的私密性,而且还能节约在线语音转译的Token费用。
只有在最后对长文本生成 AI 摘要或翻译时,才可以根据需要,自行选择是否调用在线大语言模型,而且Token用量极低。

由于原版项目的默认环境更偏向于Linux本地部署,而且要求使用OpenAI的API服务,所以本期教程中,将为大家详细展示如何进行本地化魔改,让它完美适配NAS环境。
一、部署流程
这里我们来展示如何在威联通NAS上使用Docker形式部署AI-Video-Transcriber,用到的设备是威联通最新的8盘位旗舰新品Qu805。
AI-Video-Transcriber在初次部署时需要进行一次build构建操作,所以没法直接使用docker compose代码方式进行部署,和我们之前介绍的其他项目略有不同。
如下图所示,我们需要先去GitHub下载打包后的项目文件ZIP压缩包:

将ZIP压缩包解压后,可以看到文件夹中的docker-compose.yml和Dockerfile文件。我们需要使用notepad++之类的软件打开它们,进行一些修改,才能适配NAS的部署环境。

1.修改Dockerfile文件
首先我们修改Dockerfile文件,大家可以直接覆盖掉原始代码,然后参考修改后代码的注释来做个性化修改。
# AI视频转录器 Docker镜像 - 使用标准镜像确保兼容性
FROM python:3.9-slim
# 设置工作目录
WORKDIR /app
# 安装系统依赖
RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || true && \
sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list 2>/dev/null || true && \
apt-get update && apt-get install -y --no-install-recommends \
ffmpeg \
curl \
gcc \
g++ \
&& rm -rf /var/lib/apt/lists/*
# 复制requirements.txt并安装Python依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 复制项目文件
COPY . .
# 【新增的修改代码】
# 1.修复前端 localhost 报错,便于NAS部署
RUN find static -type f -name "*.js" -exec sed -i 's|http://localhost:8000||g' {} + && \
find static -type f -name "*.js" -exec sed -i 's|http://127.0.0.1:8000||g' {} +
# 2. 强制 Whisper 输出简体中文+强制使用 IPv4 网络
RUN echo "import socket" >> backend/__init__.py && \
echo "old_getaddrinfo = socket.getaddrinfo" >> backend/__init__.py && \
echo "def new_getaddrinfo(*args, **kwargs):" >> backend/__init__.py && \
echo " return[r for r in old_getaddrinfo(*args, **kwargs) if r[0] == socket.AF_INET]" >> backend/__init__.py && \
echo "socket.getaddrinfo = new_getaddrinfo" >> backend/__init__.py && \
echo "try:" >> backend/__init__.py && \
echo " import faster_whisper" >> backend/__init__.py && \
echo " _orig = faster_whisper.WhisperModel.transcribe" >> backend/__init__.py && \
echo " def _patched(self, *args, **kwargs):" >> backend/__init__.py && \
echo " if 'initial_prompt' not in kwargs:" >> backend/__init__.py && \
echo " kwargs['initial_prompt'] = '以下是一段普通话,请务必使用简体中文输出。'" >> backend/__init__.py && \
echo " return _orig(self, *args, **kwargs)" >> backend/__init__.py && \
echo " faster_whisper.WhisperModel.transcribe = _patched" >> backend/__init__.py && \
echo "except Exception:" >> backend/__init__.py && \
echo " pass" >> backend/__init__.py
# 3. 将后端代码中可能写死的 GPT 模型强制替换为 DeepSeek 模型
RUN find backend -type f -name "*.py" -exec sed -i 's/gpt-3.5-turbo/deepseek-chat/g' {} + && \
find backend -type f -name "*.py" -exec sed -i 's/gpt-4o/deepseek-chat/g' {} + && \
find backend -type f -name "*.py" -exec sed -i 's/gpt-4/deepseek-chat/g' {} +
# =========================================================================
# 创建临时目录
RUN mkdir -p temp
# 设置环境变量
ENV HOST=0.0.0.0
ENV PORT=8000
ENV WHISPER_MODEL_SIZE=base
# 暴露端口
EXPOSE 8000
# 健康检查
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/ || exit 1
# 启动命令
CMD ["python3", "start.py", "--prod"]这里我对Dockerfile文件改动的地方主要有4处。
- 1.将项目依赖项的下载网址替换为国内镜像源,避免过于冗长的部署时间。
- 2.AI-Video-Transcriber项目的原始代码是针对Linux系统本机环境来写的,我们使用NAS部署时,需要对网络环境部分进行修改来适配;
- 3.AI-Video-Transcriber默认使用Faster-Whisper语音转文字模型,该模型在训练时使用了大量繁体中文视频的资源,默认情况下转录出的文字会有部分繁体字,这里我将其强制指定为使用简体中文输出。
- 4.AI-Video-Transcriber的默认设置中,使用OpenAI的GPT模型来进行摘要、整理等工作,这里我选择将其替换为更加易用的deepseek-chat模型,大家也可以根据自己的需求灵活修改。
2.修改docker-compose.yml文件
接下来我们docker-compose.yml文件,还是将修改后的代码直接替换原始代码,然后根据实际情况修改其中的部分内容。
services:
ai-video-transcriber:
build: .
ports:
- "8000:8000"
environment:
# 必需:OpenAI API密钥
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 可选:自定义OpenAI端点
- OPENAI_BASE_URL=https://api.deepseek.com/v1
# 可选:Whisper模型大小
- WHISPER_MODEL_SIZE=base
# 指定 AI 模型为 deepseek-chat
- FAST_MODEL=deepseek-chat
- SMART_MODEL=deepseek-chat
# 服务器配置
- HOST=0.0.0.0
- PORT=8000
# HuggingFace 国内镜像源,解决模型下载失败
- HF_ENDPOINT=https://hf-mirror.com
# 强制指定公网 DNS,解决威联通内网无法解析 DeepSeek 域名的问题
dns:
- 223.5.5.5
volumes:
# 挂载临时文件目录,便于查看和管理下载的文件,根据实际情况修改
- /share/Container/AI-Video-Transcriber/temp:/app/temp
# 挂载模型存放目录,避免反复下载
- /share/Container/AI-Video-Transcriber/models:/root/.cache/huggingface/hub
restart: unless-stopped
# 资源限制(可选)
deploy:
resources:
limits:
memory: 2G
reservations:
memory: 1G
这里在原始代码的基础上做了如下几处修改:
- 1.将算力服务商的URL从OpenAI更换为DeepSeek。
- 2.将文字摘要的模型指定为deepseek-chat。
- 3.AI-Video-Transcriber在首次部署时需要下载faster-whisper模型文件,这里将下载地址替换为HuggingFace的国内镜像源,避免模型下载失败的问题。
- 4.为了避免每次部署时都反复下载模型,这里挂载了NAS上的模型存放目录。
大家在部署时可以根据实际情况进行修改这些设置:
- 1.docker的映射端口,默认为8000,可以修改成其他端口。
- 2.文字模型的URL和API密钥。
- 3.AI-Video-Transcriber支持5种不同大小的Whisper模型,默认为base,可以根据实际硬件配置来灵活更换。注意模型参数量越大,内存占用越高。如果想要使用 large 模型,建议将 memory: 2G 的限制至少修改为 4G 甚至更高,以免转录时容器因内存不足而崩溃。

- 4. volumes部分挂载的NAS目录一定要根据实际情况进行修改,不要照搬。
3.上传文件夹
将Dockerfile和docker-compose.yml文件修改完成后,我们将整个文件夹上传到NAS,并自己修改一下文件夹名,比如这里我使用的地址是/share/Container/AI-Video-Transcriber。
接下来在此文件夹中新建temp和models两个空白文件夹,用来和docker-compose.yml中映射目录相对应。

4.SSH登录NAS,部署Docker
如下图所示,接下来咱们启用NAS的SSH功能:

使用Putty或者FinalShell之类的软件,通过NAS的IP地址登录命令行后台,使用cd命令进入刚才我们上传的/share/Container/AI-Video-Transcriber文件夹中,命令如下:
cd /share/Container/AI-Video-Transcriber
接下来使用sudo提权,输入以下代码构建并部署AI-Video-Transcriber的Docker,由于我们已经给依赖项替换了国内镜像源,所以部署速度非常快。
sudo docker compose up -d --build
待看到Network Created和Container Started的提示字样时,AI-Video-Transcriber就已部署完成了。
此时可以在Container Station中看到正在运行的容器:

二、使用方法
接下来只要在PC或者手机浏览器中输入 http://<NAS IP>:<端口号>,比如http://192.168.10.70:8000,就可以直接访问项目页面并使用了。

在输入框中粘贴Bilibili、抖音等平台的视频链接,选择希望生成摘要的语言,点击"开始转录"按钮,即可开始进行转录操作,并且能够看到下载视频、提取音频、转录、优化和摘要等每一步的实时进度。

这里我用自己之前做的一个小视频进行尝试,转录出来的结果还是比较准确的,而且通过AI也进行了自动错别字修正、句子完整化和智能分段等优化处理。

在AI的加持下,也可以看到这个视频的智能摘要,更方便提纲挈领。

如下图所示,当所选摘要语言与检测到的转录语言不一致时,转录文本默认会显示视频的原始语言:

并且此时它会显示第三个标签页"翻译",包含通过调用deepseek-chat进行翻译后的结果:

同时在智能摘要部分,依然会显示我们在部署时设置的简体中文:

总结
通过以上完整的部署与修改流程,我们已经成功在威联通 NAS 上搭建起了属于自己的 AI 视频转录与摘要平台。
回顾整个项目,AI-Video-Transcriber 巧妙地将本地算力与云端大模型结合在了一起,利用NAS本地运行的Faster-Whisper模型实现零成本语音转文字;再借助DeepSeek等大模型的高性价比API完成最终的智能摘要与内容提取。
如果你经常需要整理网课笔记、查阅外文技术视频或者快速提取长视频的核心内容,相信这款工具一定会成为你提升生产力的利器。如果你觉得这个项目对你有帮助,不妨去GitHub上给原作者点个 Star;如果在部署过程中遇到其他疑问,也欢迎在评论区留言交流。

