我敢打赌你不知道你的 Mac 还能这样用

我有一支技术全面、经验丰富的小型团队,专注高效交付中等规模外包项目,有需要外包项目的可以联系我

你以为你的 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 小时骂你一次

  1. 打开终端

  2. crontab -e

  3. 填:

# 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 其实一直都有一套专业的语音合成系统,它没有吱声,只是你没叫它说。 而程序员厉害的地方就在于:能把系统自带的小功能玩成生产力。

所以现在你可以回去做这几件事:

  1. 在构建脚本里加一句 say

  2. 给测试加一句 say

  3. 给你的工作流加一个“说话”的出口

然后你就能享受一种新的开发体验:不是等日志,是等电脑说话。

全栈AI·探索:涵盖动效、React Hooks、Vue 技巧、LLM 应用、Python 脚本等专栏,案例驱动实战学习,点击二维码了解更多详情。

最后:

Vue 设计模式实战指南 

20个前端开发者必备的响应式布局

深入React:从基础到最佳实践完整攻略

python 技巧精讲

React Hook 深入浅出

CSS技巧与案例详解

vue2与vue3技巧合集

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值