大家好,我是阿布
前几天翻了翻我手机里的各种录音,有通话录音、开会录音、播客录音足足几百条。
这些录音录完以后呢?基本就躺在那了,再也没打开过。
但 AI 时代,我们可以让这些宝贵的数字资产持续的为我们提供价值,为我们做复盘、做规划、挖掘线索、辅助学习、辅助识别知识盲区等等,这都是以前不可想象的。
因此我就开始找了一下解决方案。
最开始想到的就是飞书妙计平台,这个产品也确实优秀,日常飞书会议都是直接转录好,AI 分析后直接生成待办事项。
但奈何免费版本每个月只有 300 分钟转录时间,而且想使用 AI 分析功能每个月需要 69 元。
于是我就和我的 Claude Code 共创出了 Whisper + Pyannote 的解决方案。
经过实际测试,效果还不错,并不输飞书妙计,而且本地搭建还有更多玩法,比如结合 emotion2vec 工具可以为每句对话的情绪打标。
通过 AI 分析后,可以推断你的某个判断或者想法,是在什么样的心情及状态下产生的,可以丰富更多的场景分析,这个是飞书妙计没有的。
先看效果
我用一段电话录音测试,最终输出长这样:

AI帮我总结了通话核心结论、待办项、以及完整的对话内容。
其实输出的样式并不重要,只要你把关键信息提取出来了,你可以让大模型给你整合输出各种形式的内容。
用了什么工具
这里说一下需要用到的工具:
whisper-cpp:OpenAI 开源的语音识别模型,负责把语音变成文字,C++ 重写版本,针对苹果 M 系列优化比较好,运行速度还不错。(但是这里也强烈建议可以把whisper替换为线上豆包ASR,云端大模型文字识别更准确)
ffmpeg:负责格式转换,因为 Whisper 只能识别 wav 音频,像苹果手机的录音文件都是 m4a 的,所以需要通过 ffmpeg 工具转换一下。
pyannote:专门做说话人分离的模型,负责标注"这段话是谁说的",这个识别是靠说话人的音频来识别的,这样后面分析就比较准确了,不然只靠单纯的音频转文字,可能会不够精准,一定要把人声区分开。
Claude Code:把上面两个工具串起来,自动执行转换、转录、分离、合并,最后输出整理好的对话记录。
whisper 管"说了什么",pyannote 管"谁在说",Claude Code 管"串起来并整理输出"。
而且 Claude Code 还能做一件额外的事:根据上下文修正 whisper 的错别字,比如 whisper 可能会把"石英石"识别成"适应式",让 Claude 根据语境再自动纠正过来。
这里还要提及一个工具是 emotion2vec,它可以识别说话人的情绪,这个玩法就更多了,比如我们在开会、或者通话中,你的这个决策是在什么情绪下做的,是否冲动等等,这个是飞书妙计也不具备的。
不过 emotion2vec 对内存的依赖比较高,我这里只是做了简单的尝试,如果资源足够,其实跑起来也是完全没有问题的,整个流程如下:

完整安装步骤
前置条件
- macOS 系统(Intel 或 Apple Silicon 都行,M 芯片会更快)
- 能打开终端(应用程序 > 实用工具 > 终端,或者用 Spotlight 搜索"终端")
- Windows 系统我没有尝试,但思路应该都差不多
第一步:安装 Homebrew
Homebrew 是 Mac 上的软件包管理器,后面装工具都要用它。
打开终端,粘贴这行命令回车:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装过程中会提示你输入电脑密码(输入时屏幕不会显示字符,正常现象),然后等它跑完。
安装完成后,如果你是 Apple Silicon(M1/M2/M3/M4),终端会提示你执行两行命令把 brew 加到环境变量里:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
验证是否成功:
brew --version
看到版本号就说明装好了。
如果 GitHub 访问慢导致安装失败,可以用国内镜像:
/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
第二步:安装 ffmpeg 和 whisper-cpp
brew install ffmpeg whisper-cpp
都有输出就说明装好了。
第三步:下载 Whisper 中文语音模型
先创建存放模型的目录:
mkdir -p ~/.local/share/whisper
然后下载 medium 模型(推荐,中文效果和速度平衡):
curl -L -o ~/.local/share/whisper/ggml-medium.bin "https://hf-mirror.com/ggerganov/whisper.cpp/resolve/main/ggml-medium.bin"
第四步:测试 Whisper 转录
先准备一段测试音频。如果你有苹果语音备忘录,可以打开语音备忘录 app,右键一条录音,选"共享" > "存储到文件",保存到桌面。
然后用 ffmpeg 转格式(whisper-cpp 只接受 wav):
ffmpeg -i ~/Desktop/你的录音.m4a -ar 16000 -ac 1 -c:a pcm_s16le /tmp/test.wav -y
运行 whisper 转录:
whisper-cli -m ~/.local/share/whisper/ggml-medium.bin -l zh -f /tmp/test.wav
如果看到带时间戳的中文文字输出,说明 whisper 这部分搞定了。
第五步:安装 Python 3.11
pyannote 需要 Python 3.10 以上版本,macOS 自带的是 3.9,所以要装一个新的:
brew install python@3.11
第六步:创建 Python 虚拟环境并安装 pyannote
创建一个独立的 Python 环境(不会影响系统其他东西):
/opt/homebrew/bin/python3.11 -m venv ~/.local/share/whisper/venv
激活这个环境:
source ~/.local/share/whisper/venv/bin/activate
激活后你会看到终端前面多了个 (venv) 标记。
安装 pyannote(这步比较慢,会下载很多依赖包):
pip install pyannote.audio
等它跑完,看到 Successfully installed 就行。
第七步:配置 HuggingFace 账号和 Token
pyannote 的模型需要从 HuggingFace 下载,需要走一个免费的授权流程。
-
1. 打开 https://huggingface.co 注册一个账号(免费)
-
2. 登录后,打开下面两个链接,点页面上的"Agree and access repository"按钮:
- https://huggingface.co/pyannote/speaker-diarization-3.1
- https://huggingface.co/pyannote/segmentation-3.0
- 3. 打开 https://huggingface.co/settings/tokens ,点"Create new token"
- 名字随便填,比如"whisper"
- 权限勾选"Read access to contents of all public gated repos you can access"
- 点创建,把生成的 token 复制下来(格式是 hf_ 开头的一串字符)
第八步:测试 pyannote 说话人分离
确保你还在虚拟环境里(终端前面有 (venv) 标记),如果没有就先激活:
source ~/.local/share/whisper/venv/bin/activate
然后运行测试(把 你的token 替换成第七步拿到的 token):
export HF_TOKEN=你的token
python3 -c "
from pyannote.audio import Pipeline
print('正在加载模型...')
pipeline = Pipeline.from_pretrained('pyannote/speaker-diarization-3.1')
print('正在分析说话人...')
result = pipeline('/tmp/test.wav')
for turn, _, speaker in result.speaker_diarization.itertracks(yield_label=True):
print(f'[{turn.start:.1f}s - {turn.end:.1f}s] {speaker}')
print('完成!')
"
第一次运行会自动下载模型文件(几百 MB),需要等一会。如果下载失败,检查:
- Token 是否正确
- 是否已经在 HuggingFace 上同意了两个模型的协议
运行成功后会看到类似这样的输出:
[3.8s - 5.2s] SPEAKER_00
[6.4s - 12.2s] SPEAKER_01
[12.7s - 14.6s] SPEAKER_00
到这里说明说话人分离也搞定了。
第九步(可选):安装 emotion2vec 情绪识别
如果你还想识别说话人的情绪,在同一个虚拟环境里继续装:
pip install funasr modelscope
测试:
python3 -c "
from funasr import AutoModel
print('正在加载情绪模型...')
model = AutoModel(model='iic/emotion2vec_plus_base')
print('正在分析情绪...')
result = model.generate('/tmp/test.wav', granularity='utterance', extract_embedding=False)
for r in result:
print(r)
print('完成!')
"
输出会显示情绪标签和置信度,比如 neutral 99%。
注意:emotion2vec 对内存要求较高,超过 2 分钟的音频建议分段处理,否则可能被系统杀掉。
日常使用
装好以后,日常使用就很简单了。
方式一:让 Claude Code 帮你跑(推荐)
我在 Claude Code 里配了一个 Skill,跟它说"帮我转录今天的录音",它就会自动去找语音备忘录文件,跑完整个流程,输出带说话人标注的对话记录。
方式二:手动执行
# 加载 brew 环境
eval "$(/opt/homebrew/bin/brew shellenv)"
# 激活 Python 虚拟环境
source ~/.local/share/whisper/venv/bin/activate
# 设置 HuggingFace Token
export HF_TOKEN=你的token
# 转格式
ffmpeg -i "你的录音.m4a" -ar 16000 -ac 1 -c:a pcm_s16le /tmp/work.wav -y
# 转文字
whisper-cli -m ~/.local/share/whisper/ggml-medium.bin -l zh -f /tmp/work.wav
# 说话人分离
python3 -c "
from pyannote.audio import Pipeline
pipeline = Pipeline.from_pretrained('pyannote/speaker-diarization-3.1')
result = pipeline('/tmp/work.wav')
for turn, _, speaker in result.speaker_diarization.itertracks(yield_label=True):
print(f'[{turn.start:.1f}s - {turn.end:.1f}s] {speaker}')
"
最后把两个结果按时间轴对齐合并就行,这步让 Claude Code 来做最省事。
和飞书妙记对比
| 飞书妙记 | 本地方案 | |
|---|---|---|
| 费用 | 免费额度有限,超了付费 | 完全免费 |
| 隐私 | 录音上传云端 | 数据不出本机 |
| 说话人分离 | 支持 | 支持 |
| 中文效果 | 好 | 好(同音错字可被 Claude 修正) |
| 使用门槛 | 零门槛 | 需要装几个工具(一次性) |
| 速度 | 快 | 还行(取决于电脑性能) |
常见问题
whisper 同音错字
中文口语同音词多,whisper 经常搞混,比如"基数"变"技术","指标"变"纸标",解决办法就是让 Claude Code 在输出时根据上下文自动修正。
语音备忘录文件位置
苹果电脑语音备忘录存在这个路径:
~/Library/Group Containers/group.com.apple.VoiceMemos.shared/Recordings/
如果开了 iCloud 同步,本地可能看不到文件,需要在系统设置里关掉语音备忘录的 iCloud 同步。
终端权限问题
macOS 对这个目录有沙盒保护,需要在"系统设置 > 隐私与安全性 > 完全磁盘访问权限"里给你的终端或 IDE 加权限。
pyannote 首次下载模型
第一次跑会从 HuggingFace 下载模型,国内网络可能不稳定,可以用 hf-mirror.com 镜像。
让你的 Claude Code 帮你搞定一切
如果你感觉上面的安装步骤执行起来比较痛苦,强烈推荐让你本地的 AI 工具来搞定。
是否能代替飞书会议转录?
这个方案本质上是对本地录音文件进行的转录 + AI 分析,如果是飞书在线会议录音或录像,需要下载至本地再做分析,不过这一步也可以结合飞书 CLI 工具做自动化处理。
写在最后
以上就是整个的搭建思路及过程,这里更多的是想和大家分享一些 AI 时代我自己的感受。
经常有朋友问我 AI 除了日常用豆包对话外,还有啥用处,我给了他一些启发。
我们平时和他人的微信聊天、电话语音、和客户的生意谈判、日常看到的朋友圈、微信文章、好的短视频等等的一切,其实都可以称之为数字资产。
这些数据都与你自己有关,在没有 AI 的时代,我们白白的浪费了这么多好的资源。
但今天不一样,AI 可以让我们实现很多以前无法做到的事情。
你可以把日常的录音、笔记、收藏的内容都整理起来,通过 AI 工具来搭建一套属于自己的内容资产系统,持续沉淀,持续输出,这不就是一个 AI 实际的应用场景吗?
所以这篇文章也算是 AI 应用场景的一个最佳实践吧,希望对你有所帮助和启发。