# Asr

> ASR 语音识别执行手册（主 session 专用）

- Skill: `momori777/asr` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add momori777/asr`
- Raw SKILL.md: https://api.skillmd.com/api/skills/momori777/asr/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: momori777 (https://skillmd.com/u/momori777)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/momori777/asr

---

# ASR 语音识别执行手册（主 session 专用）

## ⚠️ 核心规则：你不能 exec ASR！你要 spawn 子 session！

**❌ 绝对禁止**: `exec` 跑 asr_call.py
**✅ 唯一方式**: `sessions_spawn(mode="run")`

⚠️ **与 TTS/ComfyUI 的关键区别：ASR 不杀 llama！**

Faster-Whisper small 模型（461MB, ~1.5GB VRAM）不和 llama 抢显存架构，在 8GB 卡上两条链路共存。不要调用 stop_llama/start_llama。

### 触发场景

QQ/Telegram 收到用户的语音消息 → 主 session 收到音频附件路径 → spawn ASR 子 session 转文字 → 拿到文本后当作用户对话输入。

---

## 执行步骤

### STEP 1: 确认收到语音附件

用户发语音消息时，OpenClaw 会把音频文件路径放在上下文里。找到音频文件的完整路径（通常是 `.wav` / `.ogg` / `.mp3`）。

### STEP 2: ⚠️ 先 spawn 再说话！

```
sessions_spawn({
  task: `你的任务：只做一件事——用 exec 工具运行下面这条命令。

命令（复制粘贴，一个字都不许改）：

powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\\.openclaw\\workspace\\skills\\asr\\run_asr.ps1" -audio "<音频文件的完整路径>"

执行完毕后：
- 如果 exec 输出包含 "DONE: " 后面是识别出的文本 → 输出那行文本
- 如果失败（包含 FAILED）→ 输出"FAILED"
- 不要做任何其他操作！`,
  taskName: "asr",
  mode: "run",
  model: "local/qwen3.6-35b",
  fallbacks: ["deepseek/deepseek-v4-flash"],
  runTimeoutSeconds: 300
})
```

### STEP 3: 回复用户

sessions_spawn 后直接回复："正在听…稍等哦~ 🎤"

### STEP 4: 收到 announce 后

子 session 完成后的 announce 包含 "DONE: <识别文本>"。

提取文本，把它当作用户刚说的话，正常用 LLM 回复。

例如：
- announce: `DONE: 亚托莉今天天气怎么样`
- → 你用 LLM 回复 "亚托莉今天天气怎么样"

---

## 技术细节

| 项目 | 说明 |
|------|------|
| 模型 | Faster-Whisper small（461MB, ~1.5GB VRAM GPU） |
| 输入格式 | wav / mp3 / ogg / flac / m4a |
| 输出 | 纯文本（识别结果） |
| 首次运行 | 自动下载模型到 `~/.cache/asr_models/` |
| Llama 状态 | **不停止** llama-server |
| 并发保护 | `.asr_running.lock` 文件锁 |
| 超时 | 300s 硬超时 |

---

## 故障排查

### Q: 首次运行很慢？
**A**: 首次需要下载 small 模型（~461MB）。后续从缓存加载，秒级。

### Q: 识别不准？
**A**: small 模型覆盖 99 种语言，日语/中文/英文都较好。沉默部分自动跳过（VAD）。

### Q: VRAM 冲突？
**A**: Whisper small 只占 ~1.5GB VRAM，llama ~6GB，8GB 卡足够共存。若显存紧张，ASR 自动退到 CPU 推理。

