04db423416
- 70 skills with code and documentation - Add .gitignore (ignore __pycache__, output/, temp/, venv/) - Clean up test intermediates and caches
167 lines
4.4 KiB
Markdown
167 lines
4.4 KiB
Markdown
---
|
||
name: video-analysis
|
||
description: 视频内容分析技能,支持视频转录,内容分析,知识提取。当用户提到分析视频、视频转录、提取视频内容时触发。
|
||
---
|
||
|
||
# 视频分析技能
|
||
|
||
## 概述
|
||
|
||
| 能力 | 说明 | 脚本 |
|
||
|-----|------|------|
|
||
| 视频转录 | 使用Whisper等工具转录视频内容 | `scripts/transcribe_video.py` |
|
||
| 快速转录 | 备用转录方案,支持多种方法 | `scripts/quick_transcribe.py` |
|
||
| 内容分析 | 结构化分析视频内容,提取关键信息 | `scripts/analyze_video_content.py` |
|
||
| 简单转录 | 基础转录功能 | `scripts/simple_transcribe.py` |
|
||
| 音频转MP3 | 使用edge-tts生成音频 | `scripts/text_to_speech.py` |
|
||
|
||
## 配置
|
||
|
||
### 环境要求
|
||
1. **FFmpeg**: 用于提取音频
|
||
2. **Whisper/faster-whisper**: 用于语音识别
|
||
3. **edge-tts**: 用于生成音频(微软TTS)
|
||
4. **Python依赖**: `openai-whisper`, `faster-whisper`, `edge-tts`, `pydub`, `moviepy`
|
||
|
||
### 安装依赖
|
||
```bash
|
||
pip install openai-whisper faster-whisper edge-tts pydub moviepy
|
||
```
|
||
|
||
### 推荐:使用 faster-whisper(更快)
|
||
```bash
|
||
# 比原版 Whisper 快10倍
|
||
pip install faster-whisper
|
||
|
||
# 使用示例
|
||
python -c "from faster_whisper import WhisperModel; model = WhisperModel('tiny', device='cpu', compute_type='int8'); segments, info = model.transcribe('audio.wav', language='zh'); text = ' '.join([s.text for s in segments]); print(text)"
|
||
```
|
||
|
||
### 推荐:使用 edge-tts 生成音频
|
||
```bash
|
||
pip install edge-tts
|
||
|
||
# 使用示例
|
||
import edge_tts
|
||
import asyncio
|
||
|
||
async def main():
|
||
with open('script.txt', 'r', encoding='utf-8') as f:
|
||
text = f.read()
|
||
communicate = edge_tts.Communicate(text, 'zh-CN-XiaoxiaoNeural')
|
||
await communicate.save('output.mp3')
|
||
|
||
asyncio.run(main())
|
||
```
|
||
|
||
## 执行规范
|
||
|
||
### 视频文件预处理
|
||
1. **文件名处理**: 避免中文特殊字符和引号
|
||
2. **编码检查**: 确保文件可正常读取
|
||
3. **路径处理**: 使用绝对路径或相对路径
|
||
|
||
### 转录流程
|
||
1. 提取音频(WAV格式,16kHz,单声道)
|
||
2. 加载Whisper模型(自动下载tiny/base模型)
|
||
3. 执行转录
|
||
4. 保存文本结果
|
||
|
||
### 分析流程
|
||
1. 读取转录文本
|
||
2. 结构化分析内容
|
||
3. 提取关键概念、技术、原理
|
||
4. 生成分析报告
|
||
|
||
## 快速使用
|
||
|
||
### 基础转录
|
||
```bash
|
||
python .opencode/skills/video-analysis/scripts/transcribe_video.py "video.mp4"
|
||
```
|
||
|
||
### 快速转录(备用方案)
|
||
```bash
|
||
python .opencode/skills/video-analysis/scripts/quick_transcribe.py "video.mp4"
|
||
```
|
||
|
||
### 内容分析
|
||
```bash
|
||
python .opencode/skills/video-analysis/scripts/analyze_video_content.py "视频标题" "transcription.txt"
|
||
```
|
||
|
||
## 故障排除
|
||
|
||
### 常见问题
|
||
1. **Whisper模型下载失败**: 检查网络连接,或手动下载模型
|
||
2. **FFmpeg未安装**: 安装FFmpeg并添加到PATH
|
||
3. **内存不足**: 使用tiny模型而非base模型
|
||
4. **中文识别不准**: 尝试base模型或添加语言参数
|
||
|
||
### 备用方案
|
||
如果本地Whisper太慢或不可用:
|
||
1. 使用在线API(需配置API Key)
|
||
2. 使用其他开源工具(FunASR等)
|
||
3. 手动转录关键部分
|
||
|
||
## 应用场景
|
||
|
||
### 知识提取
|
||
- 教育视频内容分析
|
||
- 技术教程转录
|
||
- 演讲/讲座内容整理
|
||
|
||
### 内容分析
|
||
- 心理学视频技巧分析
|
||
- 商业策略视频解析
|
||
- 技能教学视频总结
|
||
|
||
### 研究用途
|
||
- 媒体内容分析
|
||
- 语言模式研究
|
||
- 信息传播研究
|
||
|
||
## 输出格式
|
||
|
||
### 转录文本
|
||
- 纯文本格式
|
||
- 包含时间戳(可选)
|
||
- 分段清晰
|
||
|
||
### 分析报告
|
||
- JSON结构化数据
|
||
- 关键概念提取
|
||
- 技术要点总结
|
||
- 伦理风险评估
|
||
|
||
## 最佳实践
|
||
|
||
1. **文件命名**: 使用英文名,避免特殊字符
|
||
2. **路径管理**: 保持工作目录整洁
|
||
3. **模型选择**: 根据需求选择tiny/base模型(faster-whisper推荐tiny)
|
||
4. **结果验证**: 人工检查关键部分准确性
|
||
5. **知识沉淀**: 转录结果存入知识库系统
|
||
6. **音频生成**: 生成MP3前先确保文本是纯文本(无MD格式)
|
||
|
||
## 常见问题
|
||
|
||
### Whisper转录太慢
|
||
- 使用 faster-whisper 替代,比原版快10倍
|
||
- 使用 tiny 模型而非 base 模型
|
||
|
||
### 生成MP3有杂音
|
||
- 确保输入文本是纯文本,无井号等特殊字符
|
||
- 使用 edge-tts 的 Xiaoxiao 语音效果较好
|
||
|
||
## 相关技能
|
||
|
||
- `knowledge-base-builder`: 知识库建设框架
|
||
- `file-reader`: 文档读写编辑
|
||
- `log-analyzer`: 日志分析技能
|
||
|
||
---
|
||
|
||
*技能版本: v1.1.0*
|
||
*创建日期: 2026-02-19*
|
||
*更新日期: 2026-02-21*
|
||
*新增: faster-whisper, edge-tts* |