我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我
你以为你的 Mac 只是个安静写代码的工具?不,它只是一直装得很安静。其实在它的 Terminal 里,藏着一条很多人根本没用过的命令,一开,就是——会说话的开发搭子。
今天我就带你拆开这个隐藏技能,把它从“好玩”用到“高效”,从“能说话”用到“能提醒我别把生产库炸了”。
“啊?这真的能说?”
别拖,先试。
打开你 Mac 的 Terminal,输入:
say "Hello, I'm your Mac speaking to you"
敲回车。
听到了吧?
是的,它说话了。😏
重点是:你没装库、没调 API、没写 Node、小红点都没给它点过,这是 macOS 自带的、成熟的、能调声音、能调语速的文本转语音系统。大部分程序员用它干的最高级的事,就是被 Siri 吓一跳。
但这条命令其实只是冰山的露个头,下面还有一整层你从没挖过的东西。
你 Mac 里其实住了一整个配音棚
很多人以为就一个 Alex,其实根本不是。你来一句:
say -v "?"
然后你会看到一串声音列表,像是在 audition:
正经人声:
搞怪角色:
Zarvox —— 机器人,科幻感拉满
Princess —— 公主腔,播“上线成功啦~”非常离谱
Bad News —— 听名字就知道是干嘛的:播坏消息
Boing —— 卡通弹跳
Bubbles —— 水里说话的感觉
随便试几句——
say -v "Zarvox" "I am a robot from the future"
say -v "Princess" "Welcome to the magical kingdom of code"
say -v "Bad News" "Your deployment has failed"
你就会发现:苹果这套声音做得其实挺走心的,只是我们平时都拿它来背英语单词,太屈才了。
好玩归好玩,咱来点能进项目的用法
下面这几招,都是我觉得程序员真能用得上的,不是那种玩两分钟就忘的。
1. 构建完成语音提醒
你一定干过这事:npm run build 一跑,去刷个 X / B 站 / Slack,回来忘了构建到底好了没。
那就把它说出来:
#!/bin/bash
echo "Starting build process..."
npm run build
if [ $? -eq 0 ]; then
say -v "Samantha" "Build completed successfully"
else
say -v "Bad News" "Build failed. Check your console."
fi
成功是女主持,失败是阴沉男反派。
你能不听吗?你只能听。
2. 测试通过要大声说,失败也要大声说
单测时间久了,人就会开小窗口摸鱼,结果测试其实早挂了。
直接写成一行:
# In your package.json or test script
npm test && say "All tests passing" || say -v "Bad News" "Tests are failing"
测试绿了,电脑会夸你; 测试红了,电脑会冷冷地说:“Tests are failing.”谁还会忘了去看 log?
3. 生产环境部署二次确认
生产环境是神圣的,不能手一抖就上了。让电脑先问你一嘴:
deploy_to_production() {
say -v "Alex" "About to deploy to production. Press Enter to continue or Control-C to cancel."
read -p ""
# deployment logic here
say -v "Princess" "Production deployment complete!"
}
有声音的发版才有仪式感。而且万一你点错了,它会提醒你“你真的要发吗?”,这个时候你的人生还来得及重来。
4. 定时喊你去做 Code Review
我们都知道要做 CR,但我们都能假装忘。
那就让电脑每 2 小时骂你一次:
打开终端
crontab -e填:
# Add to your crontab
0 */2 * * * say -v "Karen" "Don't forget to check your pending code reviews"
意思就是:每天 00:00、02:00、04:00……都用 Karen 的声音说一句“别忘了看你还没批的 PR”。
这个比 Slack 提醒有效,因为电脑是会说话的,Slack 只是会亮红点。
进阶:把它塞进你所有的脚本里
你以为 say 只能说固定的句子?不,它是能读变量、能读文件、能调语速的,你完全可以当成“语音版 echo”。
1. 动态内容播报
比如你想让电脑告诉你:我现在在哪个分支、我当前有几个提交:
#!/bin/bash
BRANCH=$(git branch --show-current)
COMMIT_COUNT=$(git rev-list --count HEAD)
say -v "Alex" "Currently on branch $BRANCH with $COMMIT_COUNT commits"
这就是能说话的 git status。
2. 读文件:一边写代码一边听
# 读 README
say -f README.md
# 做一个“今日待办播报”
echo "Today's tasks: Review pull requests, fix authentication bug, update documentation" > daily_tasks.txt
say -f daily_tasks.txt -v "Samantha"
这样你写前端、写接口,它在旁边播: “今天要做:review PR、修认证、补文档。”
你突然就有了秘书。
3. 控制语速
有些东西要慢慢说,有些话要快点说:
# 慢一点,适合危险操作
say -r 150 "Deploying to production server with SSL certificates"
# 快一点,适合通知
say -r 300 "Build complete"
-r 是读的速度。这样你就能做到:重要的慢说、提示的快说、报警的阴阳怪气说。
4. 生成语音文件,复用
你甚至可以把语音生成好,做成你自己的提醒音:
# Generate audio files for common notifications
say -v "Alex" "Build successful" -o build_success.aiff
say -v "Bad News" "Critical error detected" -o error_alert.aiff
# Play them instantly when needed
afplay build_success.aiff
以后 CI 跑完、脚本跑完、桌面小工具跑完,直接播你自己录过的提示音,很像你给自己做了个桌面版 Jenkins。
跟这些开发工具配一配,更香
1. Git Hooks:提交前后都要说
.git/hooks/pre-commit:
#!/bin/bash
say -v "Karen" "Running pre-commit checks"
.git/hooks/post-commit:
#!/bin/bash
COMMIT_MSG=$(git log -1 --pretty=%B)
say -v "Alex" "Commit successful: $COMMIT_MSG"
提交成功以后,用 Alex 的声音读出本次提交的信息,这体验太好玩了。
2. Docker 操作进度播报
docker build -t myapp . && say "Docker build complete" || say -v "Bad News" "Docker build failed"
再来个健康检查:
docker ps --filter "status=running" --format "table {{.Names}}" | grep -q myapp
if [ $? -eq 0 ]; then
say -v "Princess" "All containers are healthy"
else
say -v "Bad News" "Container health check failed"
fi
你看,开发的世界从此不是一片沉默的黑底终端了,它能说话。
3. 服务监控说话版
#!/bin/bash
# Server health check with audio alerts
check_server_health() {
response=$(curl -s -o /dev/null -w "%{http_code}" https://your-api.com/health)
if [ $response -eq 200 ]; then
say -v "Samantha" "Server health check passed"
else
say -v "Bad News" "Server health check failed with status code $response"
fi
}
放 crontab 或者 CI 里,一旦挂了你能马上听到。 相比“日志里写了一行”,耳朵能听到的才叫提醒。
三个一劳永逸的骚操作
1. 给不同语境配不同 alias
写进你的 .zshrc / .bashrc:
alias say-success='say -v "Princess" -r 200'
alias say-error='say -v "Bad News" -r 180'
alias say-info='say -v "Alex" -r 220'
然后:
npm install && say-success "Dependencies installed successfully"
就会听到一个小甜妹告诉你安装好了。 你同事坐你旁边一定会说:你电脑怎么这么活泼。
2. 让它“认识”当前项目
#!/bin/bash
if [ -f package.json ]; then
PROJECT_NAME=$(cat package.json | grep '"name"' | cut -d'"' -f4)
say -v "Alex" "Working on $PROJECT_NAME project"
fi
这个一跑,就会说出你现在的项目名,你都不用看终端在哪个目录了。
3. 多语言说话
say -v "Thomas" "Bonjour, votre build est terminé" # French
say -v "Yuki" "こんにちは、ビルドが完了しました" # Japanese
跨国团队 / 多语种产品 / 你就是想炫耀一下——都可以。
再往外:跟 macOS 的自动化串起来
Shortcuts(快捷指令)
做一个快捷指令,内容就是:
say -v "Alex" "Starting development environment"
然后你说一句:“Hey Siri, start dev mode.”Mac 就会播报,然后你再让它拉代码、开服务,整个开发环境可以做成一条语音流水线。
AppleScript
甚至可以叫 Terminal 自己开来说:
tell application "Terminal"
do script "say -v 'Princess' 'Code review reminder'"
end tell
也就是说,你可以定个闹钟,让你的 Mac 在下午三点自动打开终端、自动说:“记得看看别人的 PR 哦~”这要是开会的时候突然响,全办公室都会记住你。
为什么这招现在才有人用?
因为我们现在的工作状态都是这样的:
Terminal 至少开 3 个
浏览器至少 15 个 Tab
VS Code、Slack、Notion 一起叫
构建要几分钟
Docker build 要半天
眼睛是满的,耳朵是空的。
把一部分信息搬到“声音”这个通道上,你就能: 一边写代码,一边知道构建好了没; 一边开会,一边知道 CI 掉没掉; 一边做别的,一边知道健康检查过没过。
这就叫:给开发加一条听觉神经。
最后说一句
你的 Mac 其实一直都有一套专业的语音合成系统,它没有吱声,只是你没叫它说。 而程序员厉害的地方就在于:能把系统自带的小功能玩成生产力。
所以现在你可以回去做这几件事:
在构建脚本里加一句
say给测试加一句
say给你的工作流加一个“说话”的出口
然后你就能享受一种新的开发体验:不是等日志,是等电脑说话。
全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:
1万+

被折叠的 条评论
为什么被折叠?



