![]()
編注:本期內(nèi)容為少數(shù)派 Matrix 社區(qū)應(yīng)用自薦文章合集。文章代表作者個(gè)人觀點(diǎn),作者與文中產(chǎn)品有直接的利益相關(guān)(開(kāi)發(fā)者、自家產(chǎn)品等),少數(shù)派僅對(duì)標(biāo)題和排版略作修改。
本期目錄
Glanceway:用菜單欄看少數(shù)派、V2EX 和新聞
TaskTick:macOS 上簡(jiǎn)單的定時(shí)任務(wù)管理工具
? ambient-voice:一個(gè)全 Apple 原生的語(yǔ)音輸入工具
![]()
Glanceway
? CT | macOS | 應(yīng)用下載
用菜單欄看少數(shù)派、V2EX 和新聞,我寫(xiě)了個(gè) macOS 小工具
▍為什么做這個(gè)?
我每天會(huì)看少數(shù)派、V2EX、幾個(gè) RSS 源、GitHub 通知和 Trending、新聞。這些東西分散在不同地方,想看一眼得切好幾個(gè)窗口。
我就想要一個(gè)菜單欄面板,點(diǎn)開(kāi)掃一眼,關(guān)掉繼續(xù)干活。找了一圈沒(méi)有特別合適的,就自己寫(xiě)了一個(gè)。
![]()
▍怎么用?
Glanceway 裝好之后會(huì)在菜單欄多一個(gè)圖標(biāo),點(diǎn)開(kāi)是一個(gè)信息面板。你往里面添加信息源,它會(huì)定時(shí)去拉數(shù)據(jù),有更新就顯示出來(lái)。
添加信息源有三種方式:
RSS。直接填 URL。少數(shù)派、各種博客和 newsletter 都能通過(guò) RSS 訂閱,配合 RSSHub 能覆蓋更多站點(diǎn)。
JS 腳本。有些東西沒(méi)有 RSS,比如股票行情,可以寫(xiě)一段 JS 去請(qǐng)求接口拿數(shù)據(jù)。官網(wǎng)有一些現(xiàn)成的插件可以直接導(dǎo)入,比如 V2EX、新聞這些。不想自己寫(xiě)的話,可以給 Claude 加一個(gè) skill,告訴它你想看什么,它會(huì)幫你生成腳本。
![]()
公開(kāi) API。Glanceway 提供了公開(kāi)的 API,其他應(yīng)用可以讀取你聚合的信息。比如你可以給 Claude 安裝讀取 Glanceway 信息的 MCP 來(lái)做摘要。
![]()
信息源:支持添加顏色標(biāo)簽,有未讀內(nèi)容時(shí)菜單欄圖標(biāo)上會(huì)顯示對(duì)應(yīng)顏色的小圓點(diǎn),比較重要的信息源不容易錯(cuò)過(guò)。
![]()
Glanceway 底層就是個(gè)定時(shí)任務(wù)加展示窗口,所以不限于看新聞。監(jiān)控服務(wù)狀態(tài)、輪詢(xún)?nèi)蝿?wù)隊(duì)列之類(lèi)的也能做。
基礎(chǔ)功能免費(fèi),但對(duì)信息源數(shù)量有限制,Pro 解鎖無(wú)限數(shù)量信息源。
![]()
TaskTick
? Devid | macOS | 應(yīng)用下載
無(wú)需 crontab,無(wú)需 launchd,創(chuàng)建定時(shí)任務(wù)像設(shè)鬧鐘一樣簡(jiǎn)單。
▍為什么做這個(gè)工具
作為電腦用戶(hù),你一定遇到過(guò)這些場(chǎng)景:
每天凌晨自動(dòng)備份數(shù)據(jù)庫(kù)
定時(shí)檢查服務(wù)器是否在線
每周清理一次 Docker 垃圾鏡像
定期同步 Git 倉(cāng)庫(kù)
傳統(tǒng)方案要么寫(xiě) crontab(記不住語(yǔ)法),要么配 launchd(XML 寫(xiě)到崩潰),要么用第三方工具(大多年久失修)。
我想要的很簡(jiǎn)單:一個(gè)原生 macOS 應(yīng)用,像設(shè)鬧鐘一樣創(chuàng)建定時(shí)任務(wù),寫(xiě)好腳本點(diǎn)保存就完事。
于是就有了 TaskTick,讓定時(shí)任務(wù)回歸簡(jiǎn)單。
![]()
▍它能做什么? 直覺(jué)式調(diào)度
不用背 cron 表達(dá)式。選一個(gè)日期、一個(gè)時(shí)間、一個(gè)重復(fù)周期,就這么簡(jiǎn)單。支持從每分鐘到每年共 16 種重復(fù)方式,也可以自定義間隔。
![]()
腳本模板,開(kāi)箱即用
v1.1.0 新增的重磅功能。內(nèi)置 13 個(gè)常用腳本模板,覆蓋日常運(yùn)維的大部分場(chǎng)景:
數(shù)據(jù)庫(kù)備份:MySQL、PostgreSQL、MongoDB、Redis
健康檢查:HTTP 狀態(tài)檢測(cè)、SSL 證書(shū)到期檢查、進(jìn)程監(jiān)控、端口檢查
系統(tǒng)監(jiān)控:磁盤(pán)用量、內(nèi)存用量
運(yùn)維工具:Docker 清理、Git 同步、目錄備份、Rsync 同步
通知:Webhook(Slack/Discord)
選一個(gè)模板,改改參數(shù),設(shè)個(gè)時(shí)間,一個(gè)自動(dòng)化任務(wù)就完成了。
當(dāng)然,你也可以把自己寫(xiě)好的腳本保存為模板,支持分類(lèi)、備注、腳本校驗(yàn),方便以后復(fù)用。
![]()
菜單欄常駐
關(guān)閉窗口不會(huì)退出應(yīng)用,TaskTick 會(huì)安靜地待在菜單欄。點(diǎn)開(kāi)就能看到即將執(zhí)行的任務(wù),不打擾你的工作流。
Cmd+Q 也只是隱藏窗口,只有菜單欄的「退出」才會(huì)真正關(guān)閉。
執(zhí)行日志
每次任務(wù)執(zhí)行都會(huì)記錄:標(biāo)準(zhǔn)輸出、錯(cuò)誤輸出、退出碼、耗時(shí)。成功還是失敗一目了然,排查問(wèn)題不用猜。
系統(tǒng)通知
支持在任務(wù)成功或失敗時(shí)推送 macOS 原生通知,可以按任務(wù)單獨(dú)配置。配合健康檢查類(lèi)模板,相當(dāng)于一個(gè)輕量的監(jiān)控告警系統(tǒng)。
一鍵導(dǎo)入 Crontab
如果你已經(jīng)在用 crontab,可以一鍵導(dǎo)入現(xiàn)有任務(wù)到 TaskTick,還會(huì)貼心地問(wèn)你要不要注釋掉原來(lái)的 crontab 條目,避免重復(fù)執(zhí)行。
一些細(xì)節(jié)
原生 SwiftUI 構(gòu)建,支持淺色/深色模式,macOS 26 上有液態(tài)玻璃效果
中英雙語(yǔ),應(yīng)用內(nèi)一鍵切換
數(shù)據(jù)安全,所有數(shù)據(jù)存儲(chǔ)在本地 SwiftData 數(shù)據(jù)庫(kù),不上傳任何信息
▍應(yīng)用安裝
TaskTick 采用 GPL-3.0 協(xié)議開(kāi)源,完全免費(fèi)。支持 Apple Silicon 和 Intel,要求 macOS 15 (Sequoia) 或更高版本。如果你覺(jué)得有用,歡迎在 GitHub 點(diǎn)個(gè) Star,或者贊助支持持續(xù)開(kāi)發(fā)。
應(yīng)用下載:
- 手動(dòng)下載:前往 GitHub Releases 下載 DMG
- Homebrew(推薦):
brew install --cask task-tick![]()
ambient-voice
? 王永威 | macOS | 應(yīng)用下載
一個(gè)全 Apple 原生的語(yǔ)音輸入工具,以及我用它寫(xiě)了一個(gè)月代碼的體驗(yàn)。
▍為什么又造了一個(gè)語(yǔ)音輸入工具
我每天的工作有大量文字輸出——寫(xiě)代碼注釋、回郵件、寫(xiě)文檔。手指敲鍵盤(pán)的速度早就成了瓶頸,于是開(kāi)始認(rèn)真研究 Mac 上的語(yǔ)音輸入方案。
試了一圈下來(lái),發(fā)現(xiàn)一個(gè)讓我不太舒服的事實(shí):市面上最流行的幾個(gè)方案,沒(méi)有一個(gè)真正在用 macOS 的能力。
Whisper需要下載幾個(gè) GB 的模型,加載時(shí)吃掉大量?jī)?nèi)存,而且它對(duì)我屏幕上正在做什么一無(wú)所知。我在寫(xiě) Swift 代碼時(shí)說(shuō)「optional」,它給我識(shí)別成了普通英文單詞。
訊飛語(yǔ)記和類(lèi)似的云端方案,需要把音頻傳到服務(wù)器。作為一個(gè)每天處理客戶(hù)郵件和內(nèi)部文檔的人,我沒(méi)辦法接受語(yǔ)音數(shù)據(jù)離開(kāi)自己的電腦。
macOS 自帶的聽(tīng)寫(xiě)功能還行,但不支持自定義、沒(méi)有會(huì)議模式、不能根據(jù)上下文優(yōu)化識(shí)別。
這些工具有一個(gè)共同問(wèn)題:它們跑在 Mac 上,但完全沒(méi)有利用 macOS 的能力。把它們放到 Windows 上也一樣能工作,Apple Silicon 的神經(jīng)引擎、Vision 框架、Core ML——這些蘋(píng)果花了數(shù)年打造的端側(cè)能力,一個(gè)都沒(méi)用上。
直到 macOS 26 發(fā)布了 SpeechAnalyzer 框架——一個(gè)系統(tǒng)級(jí)的端側(cè)語(yǔ)音識(shí)別引擎,跑在 Neural Engine 上,毫秒級(jí)延遲,不聯(lián)網(wǎng),不收費(fèi)。我意識(shí)到,現(xiàn)在是時(shí)候做一個(gè)「真正屬于 Mac」的語(yǔ)音輸入工具了。
![]()
▍設(shè)計(jì)原則:每一層都用 Apple 原生框架
ambient-voice 不是在 Mac 上套了一個(gè)通用引擎,而是從底層開(kāi)始,每個(gè)功能模塊都選擇 Apple 原生框架來(lái)實(shí)現(xiàn):
![]()
![]()
全原生意味著三件事:
第一,數(shù)據(jù)不出設(shè)備。所有處理都在你的 Mac 上完成。沒(méi)有網(wǎng)絡(luò)請(qǐng)求,沒(méi)有數(shù)據(jù)上傳,沒(méi)有遙測(cè)。你的語(yǔ)音、你的屏幕內(nèi)容、你的文檔——全部留在本地。對(duì)于重視隱私的 Mac 用戶(hù)來(lái)說(shuō),這不是加分項(xiàng),是底線。
第二,零額外成本。不需要訂閱,不需要按量付費(fèi),不需要 API Key。Neural Engine 已經(jīng)在你的 Mac 里了,你買(mǎi)硬件的時(shí)候就已經(jīng)為它付過(guò)費(fèi)了。
第三,隨系統(tǒng)升級(jí)自動(dòng)變好。macOS 27 的 SpeechAnalyzer 如果比 26 更準(zhǔn)確,ambient-voice 會(huì)自動(dòng)受益,不需要更新任何代碼。這就像潮水漲了,船自然就高了。這種架構(gòu)上的便利是第三方引擎給不了的。
▍核心機(jī)制:上下文偏置——不是糾錯(cuò),是預(yù)防
這是我認(rèn)為 ambient-voice 最有價(jià)值的設(shè)計(jì),也是它和其他語(yǔ)音輸入工具本質(zhì)不同的地方。
傳統(tǒng)的語(yǔ)音識(shí)別思路是:先轉(zhuǎn)寫(xiě),再糾錯(cuò)。你說(shuō)了一段話,引擎給你一個(gè)結(jié)果,然后用后處理模型去修正錯(cuò)誤。
ambient-voice 的思路正好相反:在轉(zhuǎn)寫(xiě)的時(shí)候就介入,讓引擎在識(shí)別階段就做出正確選擇。
具體流程是這樣的:你按下右 Option 鍵開(kāi)始說(shuō)話。這個(gè)瞬間,ambient-voice 同時(shí)做兩件事——
用 AVCaptureSession 采集音頻,交給 SpeechAnalyzer 開(kāi)始實(shí)時(shí)轉(zhuǎn)寫(xiě)
用 ScreenCaptureKit 截取你當(dāng)前焦點(diǎn)窗口的內(nèi)容,用 Vision OCR 提取可見(jiàn)文本中的關(guān)鍵詞,注入 SpeechAnalyzer 的
AnalysisContext
也就是說(shuō),在你說(shuō)出第一個(gè)字之前,識(shí)別引擎就已經(jīng)知道你屏幕上有什么了。
舉個(gè)實(shí)際使用中遇到的例子:我在回一封討論 OKR 的郵件,說(shuō)「把留存目標(biāo)改一下」。如果沒(méi)有上下文偏置,「留存」很可能被識(shí)別成「留村」——這是中文語(yǔ)音識(shí)別中極其常見(jiàn)的同音詞錯(cuò)誤。但因?yàn)?ambient-voice 在我開(kāi)始說(shuō)話的時(shí)候已經(jīng)看到了屏幕上的「留存率」「OKR」「季度目標(biāo)」,識(shí)別引擎在做同音詞選擇時(shí)直接命中了正確的詞。
再比如寫(xiě) Swift 代碼的場(chǎng)景:我說(shuō)「聲明一個(gè) optional 變量」,普通識(shí)別引擎不知道我在寫(xiě)代碼,會(huì)把「optional」當(dāng)作日常英語(yǔ)處理。但 ambient-voice 看到了屏幕上的 Xcode 和 Swift 代碼,把 Swift 關(guān)鍵詞注入了識(shí)別上下文,「Optional」被正確識(shí)別為 Swift 的類(lèi)型。
這種體驗(yàn)的差別是:你不再需要說(shuō)完以后回頭改字了。用了一個(gè)月下來(lái),我?guī)缀跬苏Z(yǔ)音輸入還有「糾錯(cuò)」這個(gè)步驟。
![]()
▍越用越準(zhǔn):自動(dòng)蒸餾的數(shù)據(jù)閉環(huán)
ambient-voice 有一個(gè)讓我覺(jué)得特別巧妙的設(shè)計(jì):它會(huì)自己變好,而且你什么都不用做。
每次你用語(yǔ)音輸入,轉(zhuǎn)寫(xiě)結(jié)果會(huì)自動(dòng)保存在本地。注入文字之后,系統(tǒng)會(huì)開(kāi)一個(gè) 30 秒的觀測(cè)窗口——通過(guò) AX API 監(jiān)測(cè)你在焦點(diǎn)應(yīng)用里有沒(méi)有做修改。如果你把「人工智能」改成了「人工職能」,這條修改就會(huì)被記錄為一條糾錯(cuò)訓(xùn)練數(shù)據(jù)。
后臺(tái)有一條蒸餾管線在工作:一路用 Whisper 重新轉(zhuǎn)寫(xiě)你的原始音頻(作為高質(zhì)量參考),另一路用 SpeechAnalyzer 的原始輸出配合本地小模型做糾正。兩路結(jié)果合并加權(quán)后,通過(guò) QLoRA 微調(diào)本地 Qwen3 模型,導(dǎo)出為 GGUF 格式跑在 ollama 上,用于文本潤(rùn)色。
重點(diǎn)是:這個(gè)過(guò)程完全自動(dòng),強(qiáng)模型蒸餾為主,用戶(hù)糾錯(cuò)只是可選的輔助信號(hào)。你不需要手動(dòng)標(biāo)注任何東西,不需要訓(xùn)練任何模型,甚至不需要知道這個(gè)過(guò)程在發(fā)生。你只會(huì)感覺(jué)到,用了兩周之后,識(shí)別結(jié)果比第一天更準(zhǔn)了。
▍會(huì)議模式:端側(cè)說(shuō)話人分離
除了日常的語(yǔ)音輸入,ambient-voice 還支持會(huì)議轉(zhuǎn)錄場(chǎng)景。
按 ?M 開(kāi)始錄音,屏幕上會(huì)出現(xiàn)一個(gè)懸浮面板實(shí)時(shí)顯示轉(zhuǎn)錄結(jié)果。錄音結(jié)束后,F(xiàn)luidAudio 在本地通過(guò) CoreML 進(jìn)行說(shuō)話人分離——它能識(shí)別出會(huì)議中有幾個(gè)人在說(shuō)話,以及每段話分別是誰(shuí)說(shuō)的。
最終輸出是一個(gè) Markdown 文件,帶有時(shí)間戳、說(shuō)話人標(biāo)簽和完整文本。你可以直接放進(jìn) Obsidian、Notion 或者任何 Markdown 編輯器。
整個(gè)過(guò)程不聯(lián)網(wǎng),不上傳,會(huì)議里所有人的聲音和內(nèi)容都留在你的 Mac 上。對(duì)于涉及敏感信息的商務(wù)會(huì)議,這個(gè)特性不是「有了更好」,而是「沒(méi)有就不能用」。
![]()
▍對(duì)比:ambient-voice vs 現(xiàn)有方案
![]()
如果你只是偶爾用語(yǔ)音輸入發(fā)微信,macOS 自帶的聽(tīng)寫(xiě)夠用了。但如果你每天大量用語(yǔ)音輸入寫(xiě)文檔、寫(xiě)代碼、開(kāi)會(huì),ambient-voice 的上下文偏置和自我進(jìn)化機(jī)制會(huì)讓你體驗(yàn)到明顯不同的準(zhǔn)確率。
▍使用門(mén)檻和安裝
需要說(shuō)明的是,ambient-voice 目前處于早期階段,有一定使用門(mén)檻:
- 系統(tǒng)要求:macOS 26(Tahoe)及以上 + Apple Silicon(M1 及以上)
- 安裝方式:目前是 git clone + make install,還沒(méi)有 Homebrew Cask 或 DMG 安裝包
- 開(kāi)源協(xié)議:MIT,完整源碼在 GitHub
坦白說(shuō),如果你不熟悉命令行,現(xiàn)階段上手會(huì)有些門(mén)檻。但如果你是 Mac 開(kāi)發(fā)者或者習(xí)慣用 Homebrew 的用戶(hù),安裝過(guò)程很順暢。后續(xù)計(jì)劃推出 Homebrew Cask 和 DMG 包。
▍寫(xiě)在最后
我做 ambient-voice 的初衷很簡(jiǎn)單:Mac 上的語(yǔ)音輸入應(yīng)該用 Mac 的能力。
蘋(píng)果在 macOS 26 里放了一整套端側(cè) AI 框架——語(yǔ)音識(shí)別、OCR、端側(cè)推理、音頻分析——這些能力就擺在那里,只是還沒(méi)有人把它們串起來(lái)做成一個(gè)完整的產(chǎn)品。
ambient-voice 是一個(gè)嘗試。它不完美,有些地方還在打磨,但核心機(jī)制——屏幕上下文偏置、自動(dòng)蒸餾進(jìn)化、全端側(cè)處理——這些設(shè)計(jì)我認(rèn)為是正確的方向。
如果你也覺(jué)得語(yǔ)音輸入應(yīng)該更懂你在做什么,歡迎來(lái)GitHub試用和反饋。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.