目录
0.环境准备
0.1 前言
作者声明:本代码确实是拿AI写的,作者拿自己的签售测过,可用。如果没识别出来可能是你的音频音质不好。 你一定要有一台电脑,不推荐手机。
0.2 云端部署
如果你的电脑并没有cuda,你也不知道Python是何物,你也没在自己电脑上部署过什么程序,请使用云端方案,并且将2.Cell的内容复制粘贴到云端Google Colab的每一个cell中。切换到使用T4 GPU后,依次执行。 本代码执行中需要依次都不报错才行。 T4 GPU是什么,Cell是什么,如何使用Google Colab请自行查阅。任何Jupyter Notebook搭配GPU都可以采用此方案,也是手机能用的方案(只要你有网)。
0.3 本地部署
如果你选择本地部署,默认有基础的代码能力。 请为此项目创建一个Python虚拟环境。以下为推荐的依赖版本。 1.Python 3.10 2.CUDA 11.8 以及兼容的cuDNN 3.ffmpeg(加环境变量即可,版本无所谓,我用同一个做RVC和这个,没报错) 4.faster-whisper 1.0.3 5.srt 3.5.3 如出现依赖冲突请自行解决,没Python3.10真不行,没cuda你可以用cpu,记得改代码调用。需要install的一些包,在中国大陆环境下请自行找镜像或使用魔法解决。如果储存空间不足,可自行将large-v3切换为其他的模型。 其他的模型可以参考:
- tiny(~39 MB)
- base(~74 MB)
- small(~244 MB)
- medium(~769 MB)
- large-v2(~2.9 GB)
- large-v3(~2.9 GB)
效果没测过,我用的largeV3。是否切换模型请自行斟酌。
通常来说需要安装 pip install faster-whisper srt
1.输入准备
需要签售音频,音频格式无所谓,能基本听清楚在说什么即可。
2.各Cell
2.1
import subprocess
from faster_whisper import WhisperModel
import srt
from datetime import timedelta
# ========== 1. 检查 ==========
print("="*60)
print("依赖检查")
print("="*60)
try:
import faster_whisper
print(f"✅ faster-whisper {faster_whisper.__version__}")
except ImportError:
print("❌ faster-whisper 未安装"); exit(1)
try:
import srt
print("✅ srt")
except ImportError:
print("❌ srt 未安装"); exit(1)
try:
import torch
print(f"✅ torch {torch.__version__}")
if torch.cuda.is_available():
print(f"✅ CUDA 可用: {torch.cuda.get_device_name(0)}")
else:
print("⚠️ CUDA 不可用,将使用 CPU")
except ImportError:
print("❌ torch 未安装"); exit(1)
try:
import ctranslate2
print(f"✅ ctranslate2 {ctranslate2.__version__}")
if ctranslate2.get_cuda_device_count() == 0:
print("⚠️ ctranslate2 未检测到 CUDA")
except ImportError:
print("❌ ctranslate2 未安装"); exit(1)
try:
import numpy as np
print(f"✅ numpy {np.__version__}")
except ImportError:
print("❌ numpy 未安装"); exit(1)
print("="*60)
print("FFmpeg")
print("="*60)
print(subprocess.check_output(["ffmpeg", "-version"]).decode().splitlines()[0])
print("依赖检查完成\n")
2.2
本地
# ========== 2. 指定本地音频文件路径 ==========
video_path = r"D:\whisper\my_audio.wav" # 改成你的实际文件路径
print("音频文件:", video_path)
云端
from google.colab import files
uploaded = files.upload()
video_path = next(iter(uploaded.keys()))
print("音频:", video_path)
2.3
model = WhisperModel(
"large-v3",
device="cuda",
compute_type="float16" # 或 "int8_float16" 若显存紧张
)
print("模型加载完成")
2.4
# ========== 4. 转写 ==========
segments, info = model.transcribe(
video_path,
language="ko",
beam_size=5,
vad_filter=True
)
segments = list(segments)
print(f"识别完成,共 {len(segments)} 段")
2.5
# ========== 5. 导出 TXT ==========
with open("output.txt", "w", encoding="utf-8") as f:
for seg in segments:
f.write(seg.text.strip() + "\n")
print("TXT 已生成")
2.6
# ========== 6. 导出 SRT ==========
subs = []
for i, seg in enumerate(segments):
subs.append(
srt.Subtitle(
index=i + 1,
start=timedelta(seconds=seg.start),
end=timedelta(seconds=seg.end),
content=seg.text.strip()
)
)
with open("output.srt", "w", encoding="utf-8") as f:
f.write(srt.compose(subs))
print("SRT 已生成")
print("全部完成!文件保存在当前目录:output.txt 和 output.srt")
3.输出处理
上述步骤若能成功执行,将输出两个文件。txt文件可以直接请AI翻译,srt文件为韩语对应的时间轴,方便各位打字幕。 因为大家用来翻译的AI都不一样,故不推荐,请自行选用。 © MoriYamina 2026