视频工具 · 字幕处理

视频自动字幕

视频→自动语音识别→SRT 字幕(Whisper 本地)

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 43 次使用
🎤
AUTO SUBTITLES · WHISPER AI

视频自动字幕

基于 OpenAI Whisper AI 模型识别语音生成 SRT 字幕(多语言)

FFmpeg 命令行(推荐)

视频处理涉及复杂的解码 / 编码 / 滤镜操作,桌面 FFmpeg(开源 / 免费)是业界事实标准。安装 5 分钟,运行如下命令一次解决:

# 安装 whisper.cpp(推荐 · C++ 实现,快) brew install whisper-cpp # 提取音频转字幕(默认 base 模型,平衡速度精度) ffmpeg -i input.mp4 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav whisper-cpp -m ggml-base.bin -f audio.wav -osrt -of subtitle # 高精度(large 模型 · 慢但精确) whisper-cpp -m ggml-large-v3.bin -l zh -f audio.wav -osrt # Python 版(功能更全) pip install openai-whisper whisper input.mp4 --model large --language Chinese --output_format srt

桌面 FFmpeg 安装

macOS

brew install ffmpeg

用 Homebrew,5 秒安装

Linux

sudo apt install ffmpeg # 或 sudo dnf install ffmpeg

Debian/Ubuntu/Fedora

Windows

下载 Gyan FFmpeg builds

解压后将 bin 目录加入 PATH

Docker

docker run --rm -v $PWD:/work \ jrottenberg/ffmpeg -i input.mp4 ...

无需本地安装

操作步骤

步骤 1:安装 FFmpeg

按上方系统对应的命令安装。验证:ffmpeg -version 应输出版本号。

步骤 2:复制本页面提供的命令

input.mp4 改为你的实际视频文件路径。

步骤 3:在视频所在目录运行

用终端 (Terminal / cmd / PowerShell) 切到视频所在目录,粘贴命令并回车。

步骤 4:等待处理完成

短视频几秒,长视频几分钟。输出文件出现在同目录。

提示

模型大小:tiny(75MB) / base(140MB) / small(465MB) / medium(1.4G) / large(2.9G)。中文推荐 medium 以上。

在线替代:阿里通义听悟 / 腾讯智影 / Notta(每月有免费配额)。

第一节

关于本工具

About

剪辑师把一段两小时访谈拖进时间线,才发现同期声里混着空调嗡鸣和翻页声。这个工具把视频丢给 Whisper 模型,在服务端跑完语音识别,输出标准 SRT 文件——带时间戳的逐句文本,可直接挂载到剪辑软件里。它不处理人声分离,也不翻译语种,只做一件事:把声音转成可编辑的文字,准确率受原始录音信噪比影响,安静环境下的普通话识别效果最好。

使用场景

自媒体口播批量加字

一个美食博主每天要发 3 条探店口播,每条 2-3 分钟。之前外包给字幕组,一条 15 元,一个月光字幕就花掉 1350 元。用本工具把 MP4 拖进去,Whisper 本地跑完,3 分钟出一份 SRT,准确率在方言词上差一点,但普通话片段基本不用改,直接剪映导入微调即可。

课程讲师补录字幕

录了一期 47 分钟的编程课,麦克风收音正常但背景有空调低频嗡嗡声。上传到付费平台要求必须有中文字幕,否则不通过。用本工具跑完后,Whisper 对低频噪声不敏感,时间轴基本准,只需把“函数”被识别成“含数”的 3 处手动改掉,省了逐句打轴的时间。

会议录像快速检索

项目组每周开 2 小时周会,录像存在 NAS 里,要找某次讨论“预算调整”的片段得翻 30 分钟录像。用本工具把整段会议视频转成 SRT 字幕,导入播放器后直接搜关键词“预算”,3 秒定位到对应时间点,不用再从头拉进度条。

老电影爱好者加双语字幕

下载了一部 1980 年代的老纪录片,只有俄语原声,网上找不到现成字幕。用本工具的 Whisper 模型识别俄语,生成俄语 SRT,再用在线机翻转成中文,手动对齐两版时间轴,最终得到双语字幕。全程在本地跑,不把视频上传到任何云端。

采访录音整理逐字稿

记者采访了一位退休老工人,录音 52 分钟,口齿清楚但偶尔有方言词。之前靠人工听写,1 小时录音要花 3-4 小时整理。用本工具转成 SRT 后,先把时间轴去掉只留文本,再对着音频把“晓得”改成“知道”、“莫得”改成“没有”,总耗时不到 1 小时。

第二节

使用指南

Getting Started

使用步骤

  1. 1上传视频文件(支持 mp4/mov/avi,≤500MB),页面显示文件名与进度条
  2. 2点击「开始识别」按钮,状态变为「识别中…」,进度条实时更新百分比
  3. 3识别完成后,编辑器区域显示逐句时间戳文本,可逐条修改错字或调整时间轴
  4. 4点击「导出 SRT」按钮,浏览器自动下载 .srt 文件,文件名与源视频一致

输入输出示例

输入输出说明
https://example.com/speech.mp3(中文普通话,单人说话,无背景噪音,时长 30 秒)1 00:00:00,000 --> 00:00:05,000 今天天气真不错,适合出去走走。 2 00:00:05,500 --> 00:00:10,000 我们下午三点在公园门口见。 3 00:00:10,500 --> 00:00:15,000 别忘了带上相机。 4 00:00:15,500 --> 00:00:20,000 还有水和零食。 5 00:00:20,500 --> 00:00:25,000 好,那就这么说定了。 6 00:00:25,500 --> 00:00:30,000 拜拜。常规:标准单人中文语音,无干扰,验证基础语音识别准确率和时间轴切分粒度。输出每句独立序号+时间码,符合SRT规范。
https://example.com/lecture.mp4(英文学术演讲,含专业术语如'quantum entanglement',语速较快,时长 2 分钟)1 00:00:00,000 --> 00:00:04,500 Today we're going to discuss quantum entanglement. 2 00:00:05,000 --> 00:00:09,200 This phenomenon was first described by Einstein as 'spooky action at a distance'. 3 00:00:09,700 --> 00:00:14,100 But modern experiments have confirmed its reality. ...(后续内容省略,共约 40 条字幕)常规:英文+专业术语,验证多语言支持与术语识别能力。输出显示Whisper能正确转录'quantum entanglement'等复杂词汇,但时间轴可能因语速快而稍显密集。
https://example.com/noisy.mp4(中文,背景有持续风扇噪音和偶尔关门声,两人对话,时长 1 分钟)1 00:00:00,000 --> 00:00:03,200 (噪音)...这个方案...(噪音)...你觉得呢? 2 00:00:04,000 --> 00:00:07,500 我同意,但是预算...(关门声)...需要再讨论。 3 00:00:08,000 --> 00:00:11,000 好,明天开会再定。 ...(后续内容省略,部分句子因噪音被截断或出现[噪音]标记)边界:嘈杂环境+多人对话,验证抗噪能力和说话人区分。输出显示部分内容因噪音丢失,Whisper会尝试用[噪音]标记无法识别的片段,但不会完全崩溃。
https://example.com/silent.mp4(视频画面正常,但全程无声音,时长 10 秒)边界:静音输入。工具应返回空字幕文件(无任何字幕块),而非报错或生成乱码。验证工具对无音频流的处理逻辑。
https://example.com/verylong.mp4(中文,单人朗读,时长 3 小时)1 00:00:00,000 --> 00:00:04,000 第一章 引言 2 00:00:04,500 --> 00:00:08,200 本节我们将介绍研究背景和意义。 ...(后续内容持续生成,共约 2000 条字幕)边界:超长视频(接近工具限制)。验证工具对大文件的处理能力,包括内存占用、分段处理和时间轴连续性。输出应完整无中断。
https://example.com/dialect.mp3(中文,四川方言,语速中等,时长 15 秒)1 00:00:00,000 --> 00:00:04,000 这个菜巴适得很,安逸。 2 00:00:04,500 --> 00:00:08,000 明天我们一起去吃火锅嘛。 3 00:00:08,500 --> 00:00:12,000 要得,我来订位置。 4 00:00:12,500 --> 00:00:15,000 好,那就这么定了。易错:方言输入(非标准普通话)。Whisper对常见方言(如四川话、粤语)有一定识别率,但可能将方言词汇转写为普通话近似音(如'巴适'正确保留,但某些俚语可能被'标准化')。用户需注意方言识别准确度不如标准普通话。
https://example.com/music.mp3(纯钢琴曲,无人声,时长 20 秒)1 00:00:00,000 --> 00:00:05,000 (音乐) 2 00:00:05,500 --> 00:00:10,000 (音乐) 3 00:00:10,500 --> 00:00:15,000 (音乐) 4 00:00:15,500 --> 00:00:20,000 (音乐)易错:纯音乐/无语音输入。工具应识别为无语音内容,输出[音乐]标记而非尝试转录歌词或产生乱码。验证工具对非语音音频的分类处理能力。
https://example.com/overlap.mp4(中文,两人同时说话,语速快,时长 10 秒)1 00:00:00,000 --> 00:00:03,000 ...(重叠语音)... 2 00:00:03,500 --> 00:00:06,000 ...(重叠语音)... 3 00:00:06,500 --> 00:00:10,000 ...(重叠语音)...易错:多人同时说话(重叠语音)。Whisper无法分离说话人,输出仅标记为[重叠语音]或产生混乱的混合文本。验证工具对复杂声学场景的局限性说明。

常见错误对照

1.视频含背景音乐或多人对话时直接使用默认模型

✗ 错误上传一段嘈杂的会议录音,未做任何参数调整
✓ 修复上传前先确认音频干净度,或使用 large-v3 模型并开启 VAD 过滤

Whisper 默认模型对背景音乐、多人重叠说话识别率骤降。VAD(语音活动检测)可过滤非人声段,large-v3 在嘈杂环境下错误率比 tiny 低 40% 以上。

2.视频时长超过 Whisper 单次处理上限

✗ 错误上传一部 3 小时的电影,等待后只得到前 30 分钟字幕
✓ 修复将视频切割为 10 分钟以内的片段,分别上传后合并 SRT

Whisper 本地模型默认单次处理上限约 30 分钟音频(取决于显存),超时会被截断。分段处理可避免丢失后半部分内容。

3.非中文视频未指定语言参数,导致识别为英文

✗ 错误上传日语音频,不指定语言,得到英文乱码字幕
✓ 修复在工具中选择语言为「日语」或手动传入 --language ja

Whisper 默认语言检测对短音频或非主流语言准确率低,强制指定语言可避免自动检测误判为英语。

4.SRT 时间轴与视频实际帧率不匹配

✗ 错误从 29.97fps 视频提取的字幕直接用于 25fps 版本
✓ 修复确认视频帧率一致后再替换字幕,或使用工具内置的时间轴校准功能

SRT 时间码基于绝对时间(毫秒),但不同帧率下同一时间点对应的帧位置不同,直接替换会导致字幕与画面错位。

5.未处理音频采样率低于 16kHz 的视频

✗ 错误上传一段 8kHz 电话录音,期望得到高精度字幕
✓ 修复先用音频工具将采样率提升至 16kHz 再上传,或确认工具是否自动重采样

Whisper 模型训练数据以 16kHz 为主,低于该采样率的音频会丢失高频信息,识别错误率上升约 30%。

6.直接使用带水印或压缩过度的视频文件

✗ 错误上传一个 480p、码率 500kbps 的抖音下载视频
✓ 修复优先使用原始录制的高码率视频,或先提取无损音频(WAV/FLAC)再上传

视频压缩会连带破坏音频频谱细节,Whisper 对高频噪声敏感,低码率音频的识别准确率明显下降。

7.忽略 Whisper 对专业术语和地名的识别缺陷

✗ 错误视频中反复出现「GNU/Linux」,字幕显示为「G New Linux」
✓ 修复上传后手动校对专业词汇,或使用工具提供的词汇表功能(如有)

Whisper 基于通用语料训练,对专有名词、缩略语、品牌名没有上下文记忆,同一词汇在不同位置可能被识别为不同写法。

第三节

工作原理

How It Works

核心公式

SRT 时间戳 = floor(帧索引 × 帧时长 × 1000) → hh:mm:ss,ms

变量说明

  • 帧索引音频帧序号,从 0 开始
  • 帧时长每帧时间长度,单位秒

示例

音频采样率 16kHz,帧移 320 样本(20ms),帧时长 = 320/16000 = 0.02s。第 150 帧起始时间 = floor(150 × 0.02 × 1000) = floor(3000) = 3000ms → 00:00:03,000。结束时间 = floor(151 × 0.02 × 1000) = 3020ms → 00:00:03,020。SRT 条目:00:00:03,000 --> 00:00:03,020

上传视频文件(MP4 / AVI / MOV)音频流提取(FFmpeg 分离)Whisper 语音识别(本地模型推理)SRT 字幕下载(带时间轴)时间戳对齐(毫秒级校准)字幕格式生成(SRT 规范)完成
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
我视频里有人说话也有背景音乐,字幕能识别清楚吗?

Whisper 模型对背景音乐有一定的抗干扰能力,但效果取决于人声和音乐的音量比例。如果音乐音量明显盖过人声,识别准确率会下降。建议先使用音频编辑软件(如 Audacity)对人声进行简单降噪或提取,再上传处理。本工具上传后直接走本地 Whisper,不会外传数据,可以放心试多次。

为什么生成的 srt 字幕时间轴对不上视频?

最常见原因是视频的帧率或音频采样率与 Whisper 默认参数不一致。本工具使用 FFmpeg 提取音频时自动匹配源文件参数,但如果视频本身是可变帧率(VFR)或经过非标准剪辑,时间戳偏移可能达到几百毫秒。建议先用格式工厂或 HandBrake 把视频转为恒定帧率(CFR)再上传。

支持哪些视频格式?最大能传多大?

支持常见格式:MP4、MKV、AVI、MOV、FLV、WEBM。音频流必须为 AAC 或 MP3 编码,否则识别无声。文件大小上限 500MB,时长不超过 2 小时;超出会提示截取或压缩。如果视频是 4K 或高码率,建议先用压缩软件缩小体积再上传,本工具只提取音频轨道,画质不影响识别。

生成的 srt 字幕怎么下载?下载后怎么用?

处理完成后页面会直接显示字幕内容,并提供「下载 .srt 文件」按钮。SRT 是通用字幕格式,绝大多数播放器(PotPlayer、VLC、暴风影音、手机自带播放器)都支持。把 srt 文件和视频放在同一文件夹、同名(如 video.mp4 和 video.srt),播放器会自动加载。也可以在剪辑软件(如 Pr、剪映)中直接导入。

为什么识别结果里一堆英文单词,明明我说的是中文?

Whisper 默认语言检测可能出错,尤其是视频开头有英文歌、旁白或环境音时。本工具在提交页提供了「语言强制指定」选项,选择「中文」后再上传即可大幅减少混入英文的情况。如果已经生成了错误字幕,可以删除重试,不需要额外付费。

这个工具和剪映、讯飞听见的自动字幕有什么区别?

剪映的自动字幕依赖云端模型,需要联网且对隐私敏感内容不友好;讯飞听见按分钟收费,适合专业精校。本工具使用本地 Whisper 模型,所有音频在服务器端处理(不上传第三方),隐私性好且免费。缺点是模型较小(base/tiny 级别),对多说话人、方言或极嘈杂环境的识别精度不如商业付费方案。

上传后等了很久还在处理,是不是卡住了?

处理时长与视频时长和服务器负载有关。一般 10 分钟视频约需 3-5 分钟处理。如果超过 15 分钟无响应,可能是音频提取失败(如编码不兼容)或服务器过载。此时可以刷新页面重新上传,并检查视频音频编码是否为 AAC/MP3。本工具没有排队机制,提交即处理,长时间无响应建议换格式再试。

生成的字幕里有些词错了,能直接编辑吗?

本工具只生成原始 SRT 文件,不提供在线编辑功能。下载后用记事本或任何文本编辑器打开 .srt 文件,直接修改文本行即可。每段字幕格式为「序号→时间轴→文本」,修改后保存,播放器会自动加载新版。如果要批量修正常见错词,可以用 Notepad++ 的查找替换功能。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭