125 lines
2.9 KiB
Markdown
125 lines
2.9 KiB
Markdown
---
|
||
name: kb-whisper
|
||
description: 本地语音识别,支持音视频转文字(基于 Whisper.cpp)
|
||
---
|
||
|
||
# KB Whisper Skill
|
||
|
||
**kb-whisper** - 本地语音识别,使用 Whisper.cpp 将音视频文件转换为文本、字幕和 JSON 格式输出。
|
||
|
||
## 什么时候使用
|
||
|
||
当用户需要:
|
||
- 将视频/音频文件转换为文字
|
||
- 生成视频字幕(SRT 格式)
|
||
- 获取带时间戳的详细识别结果
|
||
|
||
## 环境变量
|
||
|
||
在使用之前,必须检查环境变量是否已经设置。
|
||
|
||
| 变量名 | 用途 | 示例 |
|
||
|--------|------|------|
|
||
| `WHISPER_CPP_PATH` | whisper.cpp 安装路径 | `~/whisper.cpp` |
|
||
|
||
## 使用方法
|
||
|
||
```bash
|
||
# 基本用法
|
||
python whisper.py --input video.mp4
|
||
|
||
# 指定模型(默认 tiny)
|
||
python whisper.py --input video.mp4 --model base
|
||
|
||
# 指定输出目录
|
||
python whisper.py --input video.mp4 --output ./output
|
||
|
||
# 异步执行(推荐)
|
||
python whisper.py --input video.mp4 --background
|
||
```
|
||
|
||
## 命令参数
|
||
|
||
| 参数 | 说明 | 默认值 |
|
||
|------|------|--------|
|
||
| `--input` | 输入音视频文件路径 | 必需 |
|
||
| `--model` | Whisper 模型类型 | `tiny` |
|
||
| `--output` | 输出目录 | 文件所在目录 |
|
||
| `--background` | 后台异步执行 | False |
|
||
|
||
## 模型选项
|
||
|
||
- `tiny` - 最小模型,速度快,精度较低(推荐快速识别)
|
||
- `base` - 基础模型,平衡速度和精度(推荐)
|
||
- `small` - 小型模型,精度更高,速度较慢
|
||
- `medium` - 中型模型,高精度
|
||
- `large` - 大型模型,最高精度,速度慢
|
||
|
||
## 输出文件
|
||
|
||
对于输入 `video.mp4`,将生成:
|
||
|
||
- `video.json` - 详细结果(包含时间戳、分段信息)
|
||
- `video.srt` - 字幕格式文件
|
||
- `video.txt` - 纯文本内容
|
||
|
||
## 输出格式示例
|
||
|
||
### JSON 格式
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"input_file": "video.mp4",
|
||
"model": "tiny",
|
||
"output_files": {
|
||
"json": "video.json",
|
||
"srt": "video.srt",
|
||
"txt": "video.txt"
|
||
},
|
||
"duration_seconds": 120.5,
|
||
"segments": [
|
||
{
|
||
"id": 0,
|
||
"start": 0.0,
|
||
"end": 3.2,
|
||
"text": "这是第一段字幕"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
## Workflow 中的使用
|
||
|
||
```bash
|
||
# 步骤4之后:如果已有音频但无字幕,可以使用 whisper
|
||
python whisper.py --input ${video_path} --model base --background
|
||
```
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
# 1. 克隆 whisper.cpp
|
||
git clone https://github.com/ggerganov/whisper.cpp.git ~/whisper.cpp
|
||
|
||
# 2. 编译
|
||
cd ~/whisper.cpp
|
||
make
|
||
|
||
# 3. 下载模型(tiny)
|
||
./models/download-ggml-model.sh tiny
|
||
|
||
# 4. 下载更多模型(可选)
|
||
# ./models/download-ggml-model.sh base
|
||
# ./models/download-ggml-model.sh small
|
||
|
||
# 5. 复制技能到 skills 目录
|
||
cp -r kb-whisper/ ~/skills/
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- **异步执行**: 使用 `--background` 参数时,命令会在后台运行,不阻塞主代理
|
||
- **模型选择**: tiny 模型适合快速识别,base 模型适合一般用途,large 模型适合高精度需求
|
||
- **文件格式**: 支持 MP3、MP4、WAV、FLAC、OGG、M4A 等常见格式
|