
先把依赖环境配好
- 先装Python,选3.9-3.11区间的版本就行,安装的时候务必勾选Add Python to PATH选项,不然后续终端识别不到Python命令。
- 打开系统终端(Windows是cmd或者PowerShell,Mac是终端),执行依赖安装命令:
pip install openai-whisper ffmpeg-python - 装完Python依赖后补装ffmpeg:Mac用户直接执行
brew install ffmpeg;Windows用户去ffmpeg官网下载预编译的二进制包,把bin目录路径加到系统环境变量里就行。
别头铁装Python3.12及以上版本,目前部分AI依赖包还没做适配,装的时候卡半天装不上,我上周刚踩过这个坑。
核心代码不到二十行
新建一个后缀为.py的文件,把下面的代码粘进去就行,不需要改复杂逻辑:
import whisper
import os
# 模型选择,第一次跑先用base,模型小下载快
model = whisper.load_model("base")
# 把引号里的文件名换成你自己的短剧片段路径
result = model.transcribe("duanju.mp4")
# 输出标准srt格式字幕文件
with open("output.srt", "w", encoding="utf-8") as f:
for idx, segment in enumerate(result["segments"], start=1):
# 格式化时间戳适配srt规范
start_ts = f"{int(segment['start']//3600):02d}:{int((segment['start']%3600)//60):02d}:{int(segment['start']%60):02d},{int((segment['start']%1)*1000):03d}"
end_ts = f"{int(segment['end']//3600):02d}:{int((segment['end']%3600)//60):02d}:{int(segment['end']%60):02d},{int((segment['end']%1)*1000):03d}"
f.write(f"{idx}\n{start_ts} --> {end_ts}\n{segment['text'].strip()}\n\n")
print("字幕生成完成,同目录下找output.srt就行")
第一次运行的时候会自动下载你选的对应模型,不用手动找资源下。如果你的设备是N卡、显存够8G左右,可以把load_model里的"base"换成"small"或者"medium",识别准确率会好不少,运行速度看设备配置,别着急关终端窗口。
几个容易踩的小问题
- 如果终端提示找不到ffmpeg,先重启终端再试,还是报错就去检查环境变量的路径是不是写到了bin目录这一级,别写错上层目录。
- 要是识别出来错字特别多,要么是短剧片段背景音太杂盖过人声,要么是选的模型太小,换大一级的模型大多能改善。
- 待处理的视频文件名别用全角特殊符号,改成英文、数字或者普通中文命名最稳妥,能避免很多奇怪的读取报错。
反正生成的srt文件直接拖到剪映、PR里就能对齐时间轴用,省下来的上传、等平台处理的时间,多剪两条片段不香吗?
评论一下?