--- name: kb-funasr description: 本地语音识别,支持音视频转文字(基于阿里 FunASR) --- # KB FunASR Skill **kb-funasr** - 本地语音识别,使用阿里 FunASR 将音视频文件转换为文本和 JSON 格式输出。 ## 什么时候使用 当用户需要: - 将视频/音频文件转换为文字 - 获取带时间戳的详细识别结果 - 需要中文优化的语音识别(Paraformer 模型) ## 环境变量 在使用之前,必须检查环境变量是否已经设置。 | 变量名 | 用途 | 示例 | |--------|------|------| | `FUNASR_CACHE_DIR` | FunASR 模型缓存目录 | `~/.cache/modelscope/hub` | ## 使用方法 ```bash # 基本用法(使用 Paraformer 模型) python funasr.py --input video.mp4 # 指定模型 python funasr.py --input video.mp4 --model paraformer-zh # 指定输出目录 python funasr.py --input video.mp4 --output ./output # 异步执行(推荐) python funasr.py --input video.mp4 --background ``` ## 命令参数 | 参数 | 说明 | 默认值 | |------|------|--------| | `--input` | 输入音视频文件路径 | 必需 | | `--model` | FunASR 模型类型 | `paraformer-zh` | | `--output` | 输出目录 | 文件所在目录 | | `--background` | 后台异步执行 | False | ## 模型选项 - `paraformer-zh` - Paraformer 中文模型(轻量,中文优化,推荐) - `paraformer` - Paraformer 多语言模型 - `sensevoice` - SenseVoice 多语言模型 ## 输出文件 对于输入 `video.mp4`,将生成: - `video.json` - 详细结果(包含时间戳、分段信息) - `video.txt` - 纯文本内容 ## 输出格式示例 ### JSON 格式 ```json { "success": true, "input_file": "video.mp4", "model": "paraformer-zh", "output_files": { "json": "video.json", "txt": "video.txt" }, "duration_seconds": 120.5, "segments": [ { "id": 0, "start": 0.0, "end": 3.2, "text": "这是第一段识别结果" } ] } ``` ## Workflow 中的使用 ```bash # 步骤4之后:如果已有音频但无字幕,可以使用 FunASR python funasr.py --input ${video_path} --model paraformer-zh --background ``` ## 安装 ```bash # 1. 安装依赖 pip install funasr modelscope # 2. 首次运行时会自动下载模型到缓存目录 python funasr.py --input test.mp4 # 3. 复制技能到 skills 目录 cp -r kb-funasr/ ~/skills/ ``` ## 注意事项 - **异步执行**: 使用 `--background` 参数时,命令会在后台运行,不阻塞主代理 - **模型选择**: paraformer-zh 模型适合中文语音识别,速度较快,精度较高 - **文件格式**: 支持 MP3、MP4、WAV、FLAC、OGG、M4A 等常见格式 - **首次运行**: 首次运行时会自动下载模型文件,需要稳定的网络连接