我敢打賭你不知道你的 Mac 還能這樣用
你以為你的 Mac 只是個(gè)安靜寫代碼的工具?不,它只是一直裝得很安靜。其實(shí)在它的 Terminal 里,藏著一條很多人根本沒用過的命令,一開,就是——會(huì)說話的開發(fā)搭子。
今天我就帶你拆開這個(gè)隱藏技能,把它從“好玩”用到“高效”,從“能說話”用到“能提醒我別把生產(chǎn)庫(kù)炸了”。
“?。窟@真的能說?”
別拖,先試。
打開你 Mac 的 Terminal,輸入:
say "Hello, I'm your Mac speaking to you"敲回車。
聽到了吧?
是的,它說話了。??
重點(diǎn)是:你沒裝庫(kù)、沒調(diào) API、沒寫 Node、小紅點(diǎn)都沒給它點(diǎn)過,這是 macOS 自帶的、成熟的、能調(diào)聲音、能調(diào)語速的文本轉(zhuǎn)語音系統(tǒng)。大部分程序員用它干的最高級(jí)的事,就是被 Siri 嚇一跳。
但這條命令其實(shí)只是冰山的露個(gè)頭,下面還有一整層你從沒挖過的東西。
你 Mac 里其實(shí)住了一整個(gè)配音棚
很多人以為就一個(gè) Alex,其實(shí)根本不是。你來一句:
say -v "?"然后你會(huì)看到一串聲音列表,像是在 audition:
正經(jīng)人聲:
圖片
搞怪角色:
- Zarvox —— 機(jī)器人,科幻感拉滿
- 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"你就會(huì)發(fā)現(xiàn):蘋果這套聲音做得其實(shí)挺走心的,只是我們平時(shí)都拿它來背英語單詞,太屈才了。
好玩歸好玩,咱來點(diǎn)能進(jìn)項(xiàng)目的用法
下面這幾招,都是我覺得程序員真能用得上的,不是那種玩兩分鐘就忘的。
1. 構(gòu)建完成語音提醒
你一定干過這事:npm run build 一跑,去刷個(gè) X / B 站 / Slack,回來忘了構(gòu)建到底好了沒。
那就把它說出來:
#!/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. 測(cè)試通過要大聲說,失敗也要大聲說
單測(cè)時(shí)間久了,人就會(huì)開小窗口摸魚,結(jié)果測(cè)試其實(shí)早掛了。
直接寫成一行:
# In your package.json or test script
npm test && say "All tests passing" || say -v "Bad News" "Tests are failing"測(cè)試綠了,電腦會(huì)夸你; 測(cè)試紅了,電腦會(huì)冷冷地說:“Tests are failing.”誰還會(huì)忘了去看 log?
3. 生產(chǎn)環(huán)境部署二次確認(rèn)
生產(chǎn)環(huán)境是神圣的,不能手一抖就上了。讓電腦先問你一嘴:
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!"
}有聲音的發(fā)版才有儀式感。而且萬一你點(diǎn)錯(cuò)了,它會(huì)提醒你“你真的要發(fā)嗎?”,這個(gè)時(shí)候你的人生還來得及重來。
4. 定時(shí)喊你去做 Code Review
我們都知道要做 CR,但我們都能假裝忘。
那就讓電腦每 2 小時(shí)罵你一次:
- 打開終端
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”。
這個(gè)比 Slack 提醒有效,因?yàn)?/span>電腦是會(huì)說話的,Slack 只是會(huì)亮紅點(diǎn)。
進(jìn)階:把它塞進(jìn)你所有的腳本里
你以為 say 只能說固定的句子?不,它是能讀變量、能讀文件、能調(diào)語速的,你完全可以當(dāng)成“語音版 echo”。
1. 動(dòng)態(tài)內(nèi)容播報(bào)
比如你想讓電腦告訴你:我現(xiàn)在在哪個(gè)分支、我當(dāng)前有幾個(gè)提交:
#!/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
# 做一個(gè)“今日待辦播報(bào)”
echo "Today's tasks: Review pull requests, fix authentication bug, update documentation" > daily_tasks.txt
say -f daily_tasks.txt -v "Samantha"這樣你寫前端、寫接口,它在旁邊播: “今天要做:review PR、修認(rèn)證、補(bǔ)文檔?!?/span>
你突然就有了秘書。
3. 控制語速
有些東西要慢慢說,有些話要快點(diǎn)說:
# 慢一點(diǎn),適合危險(xiǎn)操作
say -r 150 "Deploying to production server with SSL certificates"
# 快一點(diǎn),適合通知
say -r 300 "Build complete"-r 是讀的速度。這樣你就能做到:重要的慢說、提示的快說、報(bào)警的陰陽(yáng)怪氣說。
4. 生成語音文件,復(fù)用
你甚至可以把語音生成好,做成你自己的提醒音:
# 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 跑完、腳本跑完、桌面小工具跑完,直接播你自己錄過的提示音,很像你給自己做了個(gè)桌面版 Jenkins。
跟這些開發(fā)工具配一配,更香
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 的聲音讀出本次提交的信息,這體驗(yàn)太好玩了。
2. Docker 操作進(jìn)度播報(bào)
docker build -t myapp . && say "Docker build complete" || say -v "Bad News" "Docker build failed"再來個(gè)健康檢查:
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你看,開發(fā)的世界從此不是一片沉默的黑底終端了,它能說話。
3. 服務(wù)監(jiān)控說話版
#!/bin/bash
# Server health check with audio alerts
check_server_health() {
respnotallow=$(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 里,一旦掛了你能馬上聽到。 相比“日志里寫了一行”,耳朵能聽到的才叫提醒。
三個(gè)一勞永逸的騷操作
1. 給不同語境配不同 alias
寫進(jìn)你的 .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"就會(huì)聽到一個(gè)小甜妹告訴你安裝好了。 你同事坐你旁邊一定會(huì)說:你電腦怎么這么活潑。
2. 讓它“認(rèn)識(shí)”當(dāng)前項(xiàng)目
#!/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這個(gè)一跑,就會(huì)說出你現(xiàn)在的項(xiàng)目名,你都不用看終端在哪個(gè)目錄了。
3. 多語言說話
say -v "Thomas" "Bonjour, votre build est terminé" # French
say -v "Yuki" "こんにちは、ビルドが完了しました" # Japanese跨國(guó)團(tuán)隊(duì) / 多語種產(chǎn)品 / 你就是想炫耀一下——都可以。
再往外:跟 macOS 的自動(dòng)化串起來
Shortcuts(快捷指令)
做一個(gè)快捷指令,內(nèi)容就是:
say -v "Alex" "Starting development environment"然后你說一句:“Hey Siri, start dev mode.”Mac 就會(huì)播報(bào),然后你再讓它拉代碼、開服務(wù),整個(gè)開發(fā)環(huán)境可以做成一條語音流水線。
AppleScript
甚至可以叫 Terminal 自己開來說:
tell application "Terminal"
do script "say -v 'Princess' 'Code review reminder'"
end tell也就是說,你可以定個(gè)鬧鐘,讓你的 Mac 在下午三點(diǎn)自動(dòng)打開終端、自動(dòng)說:“記得看看別人的 PR 哦~”這要是開會(huì)的時(shí)候突然響,全辦公室都會(huì)記住你。
為什么這招現(xiàn)在才有人用?
因?yàn)槲覀儸F(xiàn)在的工作狀態(tài)都是這樣的:
- Terminal 至少開 3 個(gè)
- 瀏覽器至少 15 個(gè) Tab
- VS Code、Slack、Notion 一起叫
- 構(gòu)建要幾分鐘
- Docker build 要半天
眼睛是滿的,耳朵是空的。
把一部分信息搬到“聲音”這個(gè)通道上,你就能: 一邊寫代碼,一邊知道構(gòu)建好了沒; 一邊開會(huì),一邊知道 CI 掉沒掉; 一邊做別的,一邊知道健康檢查過沒過。
這就叫:給開發(fā)加一條聽覺神經(jīng)。
最后說一句
你的 Mac 其實(shí)一直都有一套專業(yè)的語音合成系統(tǒng),它沒有吱聲,只是你沒叫它說。 而程序員厲害的地方就在于:能把系統(tǒng)自帶的小功能玩成生產(chǎn)力。
所以現(xiàn)在你可以回去做這幾件事:
- 在構(gòu)建腳本里加一句
say - 給測(cè)試加一句
say - 給你的工作流加一個(gè)“說話”的出口
然后你就能享受一種新的開發(fā)體驗(yàn):不是等日志,是等電腦說話。

























