Files
skills/piano-lesson-highlight-generator/ENVIRONMENT.md
T
hmo 04db423416 Initial commit: skills library
- 70 skills with code and documentation
- Add .gitignore (ignore __pycache__, output/, temp/, venv/)
- Clean up test intermediates and caches
2026-04-26 19:27:40 +08:00

6.4 KiB
Raw Blame History

piano-lesson-highlight-generator 环境配置文档

最后更新: 2026-04-03 Python 版本: 3.12.13 PyTorch 版本: 2.5.1+cu121 (CUDA 12.1) faster-whisper: 1.2.1


🚨 环境路径(最重要,先看这个)

实际使用的 Python 环境

D:\ProgramData\anaconda3\envs\py312_cuda\python.exe

⚠️ 两个容易混淆的 conda 安装

路径 类型 PyTorch CUDA 能用吗?
D:\AI\Miniconda3\python.exe Minicondabase 2.11.0+cpu False 不能用,转录会超时
D:\ProgramData\anaconda3\envs\py312_cuda\python.exe Anaconda(新建) 2.5.1+cu121 True 用这个

所有运行命令都必须使用

"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe"

绝对不要用

"D:/AI/Miniconda3/python.exe"        # CPU 版本,转录超时
conda activate py312_cuda             # bash 中不工作

为什么需要新建环境

原环境 D:\AI\Miniconda3 的 PyTorch 是纯 CPU 版本(2.11.0+cpu),转录 100 分钟视频需要 100+ 分钟,会超时。

必须使用 D:\ProgramData\anaconda3\envs\py312_cuda\python.exe


环境创建步骤

1. 创建 conda 环境

"D:/ProgramData/anaconda3/Scripts/conda.exe" create -n py312_cuda python=3.12 -y

2. 安装 CUDA PyTorch

"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

注意:必须安装 +cu121 版本,不是 CPU 版本。

3. 安装 Python 依赖

"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" -m pip install faster-whisper zhconv pypinyin pyyaml

4. 验证环境

"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" -c "
import torch
from faster_whisper import WhisperModel
print(f'Python: 3.12')
print(f'PyTorch: {torch.__version__}')
print(f'CUDA: {torch.cuda.is_available()}')
print(f'faster-whisper: OK')
"

预期输出:

Python: 3.12
PyTorch: 2.5.1+cu121
CUDA: True
faster-whisper: OK

5. 本地模型路径

Whisper large-v3 模型需要下载到本地:

D:/AI/LM-Models/faster-whisper/large-v3/

包含文件:

  • config.json
  • model.bin
  • preprocessor_config.json
  • tokenizer.json
  • vocabulary.json

如果模型不在该路径,脚本会尝试从 HuggingFace 下载(很慢)。

6. 完整依赖清单

版本 用途
Python 3.12.13 运行时
torch 2.5.1+cu121 GPU 加速
torchvision 0.20.1+cu121 图像处理
torchaudio 2.5.1+cu121 音频处理
faster-whisper 1.2.1 Whisper 转录
ctranslate2 4.7.1 Whisper 后端
zhconv 1.4.3 繁体转简体
pypinyin 0.55.0 拼音转换(AI 纠错)
pyyaml 6.0.3 配置文件解析
av 17.0.0 音视频处理
numpy 2.4.3 数值计算
onnxruntime 1.24.4 Whisper 推理
tokenizers 0.22.2 文本分词

已知问题

问题 0:原环境 D:\AI\Miniconda3 没有 GPU 支持(关键!)

原 session 的错误记录:之前有 AI 记录了 D:\AI\Miniconda3 "具备 GPU 加速能力"——这是错的!

验证:

"D:/AI/Miniconda3/python.exe" -c "import torch; print(torch.cuda.is_available())"
# 输出: False

该环境的 PyTorch 是 2.11.0+cpu纯 CPU 版本。之前能跑通是因为复用了已有的 full_transcript.json,没有重新转录。如果需要重新转录,必须用有 CUDA 的环境

问题 1Python 3.8 环境无法安装 faster-whisper

matanyone 环境(Python 3.8.20)有 GPU PyTorch,但 tokenizers 包需要 Python >= 3.9,导致无法安装 faster-whisper。

解决方案:创建 Python 3.12 环境(见上文)。

问题 2conda activate 在 bash 中不工作

bash 工具中 conda activate py312_cuda 会报错。

解决方案:直接使用完整路径调用 Python

"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" script.py

GPU 资源管理

转录前清理

脚本会在转录前自动清理残留的 Python 进程,释放 GPU 显存。

转录后释放

转录完成后,脚本会:

  1. del model — 删除模型对象
  2. gc.collect() — 强制垃圾回收
  3. torch.cuda.empty_cache() — 清空 CUDA 缓存

如果 GPU 显存未释放

手动清理:

cmd /c "taskkill /F /IM python.exe /T"

运行命令模板

cd .opencode/skills/piano-lesson-highlight-generator

# 知识点提取 + config 生成
"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" scripts/extract_terms_from_ppt.py <pptx路径> <视频路径> <config输出路径>

# 精华视频生成
"D:/ProgramData/anaconda3/envs/py312_cuda/python.exe" scripts/generate_highlights.py --config <config路径>

项目目录结构

projects/piano-lesson-highlights/
├── data/                    # 原始输入数据
│   ├── lesson2/
│   │   ├── video.mp4        # 原始视频
│   │   └── course.pptx      # 配套 PPT
│   └── lesson3/
│       └── ...
└── cases/                   # 每个案例的工作区
    ├── lesson2/
    │   ├── config.yaml      # 自动生成的配置
    │   ├── intermediates/
    │   │   └── full_transcript.json  # 完整转录(可复用)
    │   └── output/
    │       ├── v1_final.mp4  # 最终精华视频
    │       ├── subs/
    │       │   ├── v1_original.srt
    │       │   ├── v1_terms.srt
    │       │   └── v1_ai.srt
    │       └── intermediates/
    │           ├── clip1.mp4 ~ clipN.mp4
    │           ├── clip1_fade.mp4 ~ clipN_fade.mp4
    │           ├── clip1.json ~ clipN.json
    │           ├── concated.mp4
    │           └── concat_list.txt
    └── lesson3/
        └── ...

技能代码位置

.opencode/skills/piano-lesson-highlight-generator/
├── scripts/
│   ├── extract_terms_from_ppt.py   # 知识点提取 + 转录 + config 生成
│   └── generate_highlights.py      # 精华视频生成
├── SKILL.md                        # 技能说明
├── STATUS.md                       # 会话状态
├── ENVIRONMENT.md                  # 本文件
└── README.md                       # 使用说明