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 直接拼起来;导入前要统一时间轴。
Pingback: AI 视频脚本实战:把操作记录变成口播、分镜和补拍清单
Pingback: AI 字幕校对:修正错字和术语,同时保留原来的时间码
Pingback: AI 整理语音笔记:把随口说的想法变成清楚的项目记录