# 用 macOS say 命令给 Claude Code Agent 加上语音播报 > 零依赖、无需 GPU,一行命令让 AI Agent 开口说话,支持中文多种声音 macOS 内置的 `say` 命令是一个零依赖的文字转语音工具,搭配 Claude Code Agent 使用,可以让 AI 直接朗读输出结果、播报通知、或生成音频文件——不需要任何 API Key,不需要 GPU,开箱即用。 ## 基本用法 ```bash # 直接朗读 say "你好,世界" # 指定中文声音 say -v Tingting "春天来了,万物复苏" # 保存为音频文件 say -v Tingting -o /tmp/output.aiff "这段话会保存成文件" ``` ## 查看可用声音 ```bash # 所有声音 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 会自动调用: ```bash say -v Tingting "已完成代码审查,发现 3 处潜在问题,已全部修复。" ``` 实用场景: - 长任务跑完后语音通知,不用盯着屏幕 - 朗读生成的文案,快速校对语感 - 生成音频素材,保存为 `.aiff` 后用 `afconvert` 转 mp3 ## 转换格式 macOS 自带 `afconvert`,可将 aiff 转为 mp3 或 m4a: ```bash 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,任务结束自动朗读: ```json { "hooks": { "Stop": [ { "matcher": "", "hooks": [ { "type": "command", "command": "say -v Tingting '任务完成'" } ] } ] } } ``` 这样每次 Agent 停止工作,Mac 就会自动开口说「任务完成」。 ## 小结 `say` 命令简单直接,是让 Agent 具备语音反馈能力成本最低的方式。无需联网、无需额外依赖,一行命令搞定。 --- **分类**:教程 **标签**:Agent · say · 命令 **作者**:Xiao.Xi **链接**:https://octohz.com/p/1598