零依赖、无需 GPU,一行命令让 AI Agent 开口说话,支持中文多种声音
macOS 内置的 say 命令是一个零依赖的文字转语音工具,搭配 Claude Code Agent 使用,可以让 AI 直接朗读输出结果、播报通知、或生成音频文件——不需要任何 API Key,不需要 GPU,开箱即用。
基本用法
# 直接朗读
say "你好,世界"
# 指定中文声音
say -v Tingting "春天来了,万物复苏"
# 保存为音频文件
say -v Tingting -o /tmp/output.aiff "这段话会保存成文件"
查看可用声音
# 所有声音
say -v ?
# 只看中文
say -v ? | grep zh
常用中文声音:
| 声音 | 语言 | 风格 |
|---|---|---|
| Tingting | zh_CN | 标准普通话女声 |
| Reed | zh_CN | 男声 |
| Shelley | zh_CN | 女声 |
| Meijia | zh_TW | 台湾女声 |
| Sinji | zh_HK | 粤语 |
在 Claude Code Agent 中使用
在 CLAUDE.md 或对话中告诉 Agent:
任务完成后,用 say 命令朗读一句总结。
Agent 会自动调用:
say -v Tingting "已完成代码审查,发现 3 处潜在问题,已全部修复。"
实用场景:
- 长任务跑完后语音通知,不用盯着屏幕
- 朗读生成的文案,快速校对语感
- 生成音频素材,保存为
.aiff后用afconvert转 mp3
转换格式
macOS 自带 afconvert,可将 aiff 转为 mp3 或 m4a:
say -v Tingting -o /tmp/out.aiff "你好"
afconvert /tmp/out.aiff /tmp/out.m4a -f m4af -d aac
配合 Claude Code Hook 自动播报
在 .claude/settings.json 中加入 Stop Hook,任务结束自动朗读:
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "say -v Tingting '任务完成'"
}
]
}
]
}
}
这样每次 Agent 停止工作,Mac 就会自动开口说「任务完成」。
小结
say 命令简单直接,是让 Agent 具备语音反馈能力成本最低的方式。无需联网、无需额外依赖,一行命令搞定。
暂无评论
