wechat-audio-toolkit
中文音频 → 公众号 Markdown 文章 / 文字稿。基于阿里云 DashScope paraformer-v2 实现语音识别 + 说话人分离,最长支持 12 小时音频。包含两个 skill:audio-to-wechat-md 自动出 6000-10000 字成品文章 +
Open source Open in the app JSON README (API)
About
中文音频 → 公众号 Markdown 文章 / 文字稿。基于阿里云 DashScope paraformer-v2 实现语音识别 + 说话人分离,最长支持 12 小时音频。包含两个 skill:audio-to-wechat-md 自动出 6000-10000 字成品文章 + 5 个标题选项;audio-to-transcript 出原样保留的可读文字稿。适合公众号创作者整理直播回放、访谈、播客等长音频内容。 Chinese audio → WeChat-formatted Markdown article or readable transcript. Backed by Aliyun DashScope paraformer-v2 (ASR with diarization). Supports up to 12-hour audio files. Two skills: audio-to-wechat-md (full WeChat article + 5 title options) and audio-to-transcript (minimally-edited readable transcript). Designed for Chinese content creators handling livestream replays, interviews, podcasts.
Details
- Kind
- Plugins
- Topic
- Files & documents
- Publisher
- guoxiaowen
- Origin
- marketplace
- Category
- ferramentas
- Last push
- 2026-04-27T03:30:35Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
guoxiaowen/wechat-audio-toolkit/wechat-audio-toolkit
README
# wechat-audio-toolkit
> 中文音频 → 公众号文章 / 可读文字稿。一个为 Claude Code / Cowork 写的 plugin。
## 这个 plugin 能做什么
| Skill | 输入 | 输出 |
|---|---|---|
| **`audio-to-wechat-md`** | 任何中文音频文件(mp3/m4a/wav/aac/flac/ogg)| 一篇 6000-10000 字的**公众号 Markdown 成品文章** + 5 个标题选项。会自动纠错、Q&A 重组、提炼金句。 |
| **`audio-to-transcript`** | 同上 | 一份**可读的 Markdown 文字稿**,保留原文不做任何整理。 |
底层用阿里云 **DashScope paraformer-v2** 做语音识别 + 说话人分离(diarization),**OSS** 做临时文件中转。
适用场景:访谈、播客、直播回放、会议录音、长视频音轨等长音频(最长 12 小时)。
---
## 一、装系统依赖
需要两样东西在你 Mac 上:
```bash
brew install ffmpeg uv
```
**ffmpeg** 用来做音频预处理(统一转成 16kHz mono wav)。**uv** 是 Python 的现代化环境管理工具,比 venv + pip 快十倍。
---
## 二、开通阿里云的两个服务
> 这一步**必须实名认证的阿里云账号**。如果你之前用过淘宝/支付宝,账号大概率已实名。
### 1. DashScope(语音识别)
1. 打开 https://bailian.console.aliyun.com/
2. 第一次会让你**开通百炼大模型服务**——免费开通,不扣钱
3. 在控制台搜索 `paraformer`,确认 `paraformer-v2` 模型显示"已开通"(一般会自动开)
4. 点头像 → "API-KEY 管理"(或访问 https://bailian.console.aliyun.com/?apiKey=1#/api-key)
5. 点"创建我的 API-KEY"
6. **立刻复制** `sk-` 开头的密钥(关闭弹窗后只能看到前后几位,找不回来就只能重建)
**计费**:约 ¥0.29/小时音频。新用户免费额度通常 36000 秒(10 小时),180 天有效。
### 2. OSS(临时文件中转)
paraformer 不接受本地文件,只接受公网 URL,所以需要 OSS 中转。
1. 打开 https://oss.console.aliyun.com/
2. 开通 OSS 服务(免费开通)
3. **创建 Bucket**:
- 名字:自取,全阿里云唯一,建议 `audio-tools-<你的英文名>`
- 地域:**华北 2(北京)**(和 DashScope 同地域,传输快)
- 存储类型:**标准存储**
- 读写权限:**私有**(脚本会生成带签名的临时 URL,不需要公开)
4. **创建 RAM 子账号**(强烈推荐,不要用主账号 AccessKey):
- 打开 https://ram.console.aliyun.com/users → 创建用户
- 登录名:`audio-tools-bot`
- 访问方式:**只勾"OpenAPI 调用访问"**
- 创建后**立刻保存** AccessKey ID 和 Secret(同样只显示一次)
- 给这个用户授权:进入用户详情 → 权限 → 新增授权 → 勾 `AliyunOSSFullAccess`
**计费**:几 MB 存储 + 几次上传下载 = 一个月几分钱。新用户有免费资源包。
---
## 三、配置环境变量
创建 `~/.claude/.env`:
```bash
# ~/.claude/.env
# DashScope(语音识别)
DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxx
# OSS(文件中转)
OSS_ACCESS_KEY_ID=LTAI5txxxxxxxxxxx
OSS_ACCESS_KEY_SECRET=xxxxxxxxxxxxxxxxxxxx
OSS_BUCKET=audio-tools-yourname
OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com
```
收紧权限(避免别的程序读到):
```bash
chmod 600 ~/.claude/.env
```
---
## 四、安装 plugin
在 Claude Code(终端)里:
```
/plugin marketplace add anthropics/claude-plugins-community
/plugin install wechat-audio-toolkit
```
**或者手动安装**(适合改源码的开发者):
```bash
git clone https://github.com/guoxiaowen/wechat-audio-toolkit ~/.claude/plugins/wechat-audio-toolkit
cd ~/.claude/plugins/wechat-audio-toolkit
uv venv && uv sync
```
然后告诉 Claude:
```
/plugin marketplace add ~/.claude/plugins/wechat-audio-toolkit
/plugin install wechat-audio-toolkit@local
```
---
## 五、装 Python 依赖
```bash
cd <plugin 安装目录>
uv venv
uv sync
```
---
## 六、自检
```bash
cd <plugin 安装目录>
.venv/bin/python skills/audio-to-wechat-md/scripts/run.py check
```
预期输出:
```json
{"ok": true, "plugin_root": "...", "output_root": "..."}
```
任何 error 都会清楚告诉你缺什么。
---
## 用法
### 出公众号文章
直接对 Claude 说:
> 帮我把这个音频 `/path/to/recording.mp3` 整理成公众号文章
Claude 会问你:
1. 发哪个公众号?(a) 自己的 / (b) 学习型 → 选 a 或 b
2. 转写完后,每个 SPEAKER_XX 是谁?
然后自动出文章 + 5 个标题。
### 只要可读文字稿
> 帮我把这个音频 `/path/to/recording.mp3` 转成文字稿
Claude 转完后会问你要不要给说话人起名字(可以选"跳过")。
---
## 输出位置
每次运行独立目录,跨次不冲突:
```
~/Downloads/audio-to-wechat-md/<时间戳>_<音频名>/
├── manifest.json
├── audio.wav # 预处理后的音频(~110MB/小时)
├── raw.json # DashScope 原始结果
├── labeled.txt # [SPEAKER_XX] 标签稿
├── final_transcript.md # 替换真名后的逐字稿
└── article.md # ← 公众号成品文章
~/Downloads/audio-to-transcript/<时间戳>_<音频名>/
├── manifest.json
├── audio.wav
├── raw.json
├── labeled.txt
└── transcript.md # ← 可读文字稿
```
---
## 清理硬盘
`audio.wav` 大约 110MB/小时音频。长期累积会占空间。
```bash
# 列出所有历史
ls ~/Downloads/audio-to-wechat-md/
ls ~/Downloads/audio-to-transcript/
# 删某次
rm -rf ~/Downloads/audio-to-wechat-md/<某次>
# 只删 wav(保留文稿和成品)
find ~/Downloads/audio-to-wechat-md -name "audio.wav" -delete
find ~/Downloads/audio-to-transcript -name "audio.wav" -delete
```
---
## 常见问题
**Q: 阿里云的免费额度用完会怎样?**
A: 账户余额不够会停服。建议预存 ¥10-20 作缓冲,paraformer-v2 大约能跑 30+ 小时音频。
**Q: 我的录音音质很差,说话人分离不准怎么办?**
A: 重跑转写时加 `--speaker-count N` 强制指定人数(N = 你知道的实际人数)。
**Q: 超过 12 小时的音频怎么办?**
A: paraformer-v2 单任务上限就是 12h,超过的话需要自己用 ffmpeg 切段。
**Q: 视频文件能不能直接用?**
A: 不行。先用 ffmpeg 提音轨:
```bash
ffmpeg -i input.mp4 -vn -acodec copy output.m4a
```
**Q: 不在 Mac 上能用吗?**
A: Linux 应该能用(同样 brew/apt 装 ffmpeg + uv)。Windows 没测过,paths 可能要改。
**Q: 我的访谈在英文播客上,可以用吗?**
A: paraformer-v2 中英文都支持。对于纯英文长访谈,效果可能不如 OpenAI Whisper,但作者主要做中文场景,所以选了 paraformer。
---
## 隐私 & 安全
- 你的音频会**临时上传到自己的阿里云 OSS bucket**,转写完毕后**自动删除**
- DashScope 拿到的是 OSS 的临时签名 URL,1 小时后失效
- API key 永远只存在你自己机器的 `~/.claude/.env` 里,不会上传到任何地方
- 转写结果(raw.json / labeled.txt / 文稿等)只在你本地 `~/Downloads/` 下
---
## 反馈 / Issues
GitHub: https://github.com/guoxiaowen/wechat-audio-toolkit/issues
公众号:郭晓文(搜索关注,问题/反馈也可以从公众号过来)
---
## License
MIT。详见 [LICENSE](LICENSE)。
---
## 致谢
- [Anthropic](https://www.anthropic.com/) — Claude Code & Cowork
- 阿里云 [DashScope paraformer-v2](https://help.aliyun.com/zh/model-studio/paraformer-recorded-speech-recognition-restful-api) — 中文语音识别
- 阿里云 [OSS](https://www.aliyun.com/product/oss) — 文件存储
- [`anthropic-skills:transcript-to-wechat-md`](https://github.com/anthropics/claude-plugins-official) — 公众号文章 Q&A 整理逻辑(本 plugin 内有 snapshot 副本)