Windows AI 字幕教程:用 faster-whisper 在本机生成 SRT 字幕

本篇目录 5 节
  1. 一、准备音频与 Python 环境
  2. 二、创建转写脚本
  3. 三、运行并导入剪辑软件
  4. 四、怎样校对才有效
  5. 五、常见问题与排错

Windows AI 字幕可以在本机完成,不必把整段录音上传到在线转写网站。本文使用 faster-whisper,把你有权处理的音频转成 SRT。示例选择 CPU int8 路线,方便没有兼容独立显卡的电脑上手;速度取决于硬件、模型和音频长度,不承诺实时。第一次安装和下载模型需要网络,下载完成后推理可以使用本地模型文件。

内容创作系列主题示意图
系列主题示意图;操作步骤以正文与官方界面为准。

一、准备音频与 Python 环境

从 Python 官网安装受当前依赖支持的 64 位 Python;这里以 Python 3.11 为示例。已有其他版本不必卸载。音频使用清楚的人声 WAV 或 MP3,先用 30 秒样本练习,不要直接拿两小时的节目排错。

在 PowerShell 新建独立目录,以下命令不修改其他项目环境。

mkdir C:\AI-Subtitles
cd C:\AI-Subtitles
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install faster-whisper

如果提示找不到 3.11,先运行 py -0p 检查已安装版本,再把命令中的版本改成你实际安装且依赖支持的版本。这里直接使用虚拟环境里的解释器,不要求修改 PowerShell 执行策略。

二、创建转写脚本

把测试音频放入该目录,命名为 input.wav。新建 transcribe.py,内容如下。脚本不修改原音频,输出字幕和带时间戳的文本。

from pathlib import Path
from faster_whisper import WhisperModel

def timestamp(seconds):
    ms = max(0, round(seconds * 1000))
    hours, ms = divmod(ms, 3_600_000)
    minutes, ms = divmod(ms, 60_000)
    seconds, ms = divmod(ms, 1000)
    return f"{hours:02}:{minutes:02}:{seconds:02},{ms:03}"

audio = Path("input.wav")
if not audio.is_file():
    raise SystemExit("Missing input.wav")
model = WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe(str(audio), language="zh", vad_filter=True)
with open("output.srt", "w", encoding="utf-8") as srt, \
     open("output.txt", "w", encoding="utf-8") as txt:
    index = 0
    for segment in segments:
        text = segment.text.strip()
        if not text or segment.end <= segment.start:
            continue
        index += 1
        srt.write(f"{index}\n{timestamp(segment.start)} --> "
                  f"{timestamp(segment.end)}\n{text}\n\n")
        txt.write(f"[{segment.start:.2f}-{segment.end:.2f}] {text}\n")
print("Finished: output.srt and output.txt")

segments 是逐段生成的结果,循环执行时才真正持续处理音频。第一次运行卡在模型下载,不等于转写死机;先检查网络与终端日志。faster-whisper 使用的音频解码方式及 GPU 依赖,以项目 README为准,本文不要求另外安装一套 CUDA。

三、运行并导入剪辑软件

cd C:\AI-Subtitles
.\.venv\Scripts\python.exe transcribe.py

预期得到 output.srt 和 output.txt。用文本编辑器打开 SRT,应看到连续编号、开始结束时间和字幕正文。然后在剪辑软件中导入字幕,检查它是否从源音频的相同起点开始。

如果剪辑时间线裁掉了片头,字幕整体也要相应平移。不要直接修改源音频去迎合字幕,这会让后续版本更难追踪。

四、怎样校对才有效

至少检查片头、片尾、静音段、专有名词和数字。中文人名、网址、型号特别容易转错。逐条校对后再调整断句和显示行数;本文脚本按转写片段输出,尚未做专业字幕的字速与换行优化。

遇到静音段出现无关句子,可以保留 VAD,并检查背景音乐和音量;仍需人工删除错误字幕。想尝试更大模型时,先保留 small 的结果,用同一段样本比较准确率与耗时。

五、常见问题与排错

为什么提示 ModuleNotFoundError?

确认安装和运行都使用 .venv\Scripts\python.exe。系统 Python 和虚拟环境可能是两套依赖。

字幕是繁体或个别用词不符合习惯怎么办?

转写后做文字校对,保持时间码不变。不要让 AI 重新编写整段内容;应对照原音频修改。

音频很长,电脑很慢怎么办?

先用更小模型验证流程,分段处理时记录每段起始偏移。不要把每段从零开始的 SRT 直接拼起来;导入前要统一时间轴。

字幕完成后可结合AI 视频脚本整理博客文字版;会议录音则可接着做行动项提取。

滚动至顶部