glm-asr · git:20260907.32b6c64 · 2026-09-07 · sha256 0b510e966dbdcfec

glm-asr git:20260907.32b6c64A

Immutable. This exact content is served forever at /api/v1/blob/0b510e966dbdcfec.

---
name: glm-asr
description: 智谱 GLM-ASR-2512 语音转文本 CLI。输入音频文件(wav/mp3,≤25MB,≤30秒),输出转录文本,支持热词表(专有名词/项目代号提升识别率)与上下文提示。模型、端点、API Key 全部走 config.json 可换。用于录音转写、会议纪要、语音输入、字幕文本提取。
---

# glm-asr — 语音转文本(GLM-ASR-2512)

## 场景

- 录音/语音备忘录转文字
- 会议片段、访谈片段的快速转写
- 语音输入(说一段话 → 文本给下游 Agent 处理)
- 带专有名词的音频(--hotwords 提升识别率)

## 触发条件

用户给出音频文件并要求转文字/转录/提取内容时。

## 输入(硬限制,超了会被 API 直接拒绝)

- **格式**:仅 wav / mp3(其他格式先用 ffmpeg 转:`ffmpeg -i in.xxx out.mp3`)
- **单文件**:≤25MB 且 ≤30 秒
- **并发**:勿超过 **10**(20 并发实测触发 429/1302;高峰期 14:00-18:00 更严)
- **视频(mp4/mov/m4a)不收**:先抽音轨 `ffmpeg -i in.mp4 -vn -b:a 64k out.mp3`(伪装后缀也会被服务端识破)
- `--hotwords "词1,词2"`:热词表(≤100 个),专有名词识别更准(实测:给"智谱"可把"质朴"修回"智谱")
- `--prompt "上下文"`:长文本场景的前文提示
- `--out 文件`:保存到文件

## 步骤

```bash
python3 scripts/glm_asr.py 录音.mp3
python3 scripts/glm_asr.py meeting.mp3 --hotwords "智谱,AutoGLM" --out transcript.txt
```

视频先抽音轨,超 30 秒的长音频先切分(ffmpeg):

```bash
# 视频抽音轨(mp4/mov/m4a 都不收,必须先转)
ffmpeg -i video.mp4 -vn -b:a 64k audio.mp3

# 超长音频切分(每段 28 秒,留 2 秒余量)
ffmpeg -i audio.mp3 -f segment -segment_time 28 -c copy part_%03d.mp3
python3 scripts/glm_asr.py part_001.mp3 --prompt "(上一段的转录文本作为上下文)"
```

## 判断标准

- 输出空文本 → stderr 有明确错误(401 key / 429 限流 / 格式问题)
- 专有名词错 → 加 --hotwords 重试

## 输出

stdout:转录文本。`--out` 时同时落盘。错误写 stderr,退出码非 0。

## 异常处理

| 症状 | 处理 |
|---|---|
| 401 | key 无效 → 检查 config.json 或环境变量 GLM_ASR_API_KEY |
| 429(code 1302) | 并发/频率超限(实测安全水位 ≤10 并发)→ 退避 1-2s 重试;高峰期 14:00-18:00 更严 |
| 不是 wav/mp3 | 用 ffmpeg 转:`ffmpeg -i in.aiff out.mp3` |
| 超 25MB / 超 30 秒 | 切分(命令见上)或压缩:`ffmpeg -i in.wav -b:a 64k out.mp3` |

## 数据回流(2026-09-08 实测)

- **端点**:coding plan(`/api/coding/paas/v4/audio/transcriptions`)与普通端点(`/api/paas/v4/...`)**均可用**(同 key),config 默认前者
- 响应 `text` 直接在顶层(无 reasoning 坑)
- 中文 TTS 测试 24 字逐字准确;专有名词(GLM ASR→GLM ATP)加 hotwords 后修正
- 端点/模型/key 变化只改 config.json,脚本零改动

## 版本

v1.0 · 2026-09-08 · 项项(skill-creator-exflower 流程:冒烟先行→开发→10 项功能测试→安装)