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