Skip to content
 
 

Repository files navigation

Zero Type

這是 fork。 原作 nick1ee/ZeroType 自 2026-03 起未再更新,PR 也無人審查,故另行維護。以下連結與版本紀錄皆以本 repo 為準。

Windows-only:目前維護者只有 Windows 環境,macos/ 平台程式碼已於 2026-08 移除(git 歷史可尋回),Release 只提供 Windows build。需要 macOS 支援請回頭參考原作 repo。

一個按實際需求產生出來的繁體中文語音輸入工具。

市面上大多數語音辨識軟體對繁體中文(特別是台灣人慣用的晶晶體中英混用語境)支援度有限,且背後處理邏輯不透明。ZeroType 透過直接串接外部 LLM API,打造一套開放、透明、可自訂的語音辨識輸入系統。

你只需要自備 API Key,其餘一切開源。


✨ 功能特色

🎙️ 全局快捷鍵錄音

  • 自訂全局快捷鍵(預設 Alt + Z),在任何應用程式中觸發錄音
  • 精簡模式(預設 Alt + X):不必再按一次熱鍵停止——開口後安靜滿 1.5 秒就自動結束錄音,文字貼上後自動按 Enter 送出,適合聊天視窗的短訊息。自動送出可在設定頁關閉,關掉後就只貼上不送出。想提早結束也可以,錄音中再按一次同一組熱鍵即可
  • 錄音中顯示浮動音波 Overlay,提供即時視覺回饋
  • 按下 Esc 或點擊取消按鈕可中止錄音

🔇 只錄到噪音就不送辨識

沒有人聲的錄音送給 AI,它不會回「沒聽到」,而是憑空編一整段內容出來——實測 gemini-3-flash、2.5-flash、2.5-pro 對純靜音分別編出會議議程、訪談節目、電影台詞;有一次十五秒的空錄音換回了一整篇五百字的開學致詞,照樣付費、照樣貼進游標所在的位置。換模型、改提示詞都壓不住。

判斷「有沒有人在講話」不能看音量大小,要看動態範圍

把錄音切成 20ms 的音框,各自算音量(RMS)後排序,取兩個百分位:

  • p10(最安靜的一成)= 底噪
  • p90(最大聲的一成)= 人聲

p90 ÷ p10 就是動態範圍。它問的不是「聲音多大」,而是**「大聲的部分比安靜的部分高出幾倍」**。講話一定有停頓,字與字、句與句之間會落回底噪,高低差因此拉得很開;只有底噪的錄音則是一條平的線。低於 4 倍就不送辨識,並在「紀錄」頁說明是被這條擋下的。

用比值而不是絕對音量,有兩個好處:

  1. 不必為每支麥克風校正。 同一段錄音自己跟自己比,錄音後的自動增益、麥克風本身的音量大小都會約掉——藍牙耳機整段偏小、內建麥克風偏大,判斷結果一樣。實測純噪音錄音的最大音框音量落在 178~365,跟小聲的人聲根本分不開,絕對門檻做不到這件事。
  2. 敲擊聲騙不過去。 敲一下桌子會有音框衝到底噪的幾十倍,絕對門檻立刻放行;但沒人講話時 p10 仍然貼在底噪上,比值不會上去。實測有器物碰撞聲的那筆噪音錄音仍然只有 2.9。

實測 13 筆真實錄音:

動態範圍
正常說話(8 筆) 6.2 ~ 11.6
只有噪音(5 筆) 1.4 ~ 2.9

門檻 4 落在中間,兩邊各有兩倍餘裕。

已知限制:在吵雜環境(風扇、咖啡廳)講話會把 p10 頂高、比值掉下來,真的講話有可能被誤擋,此時「紀錄」頁會指名是動態範圍擋的。目前樣本為單一麥克風、單一環境。短於 1 秒的錄音音框太少、百分位不穩,一律放行不判斷。

🧠 AI 驅動的語音辨識

  • 支援 OpenAIGoogle GeminiOpenRouter(一把 Key 通吃多家模型)三種語音辨識後端
  • OpenRouter 模型清單由官方 API 線上取得(只列支援音訊輸入的模型),下拉選單直接顯示每百萬 token 費率並標示「推薦」;離線時退回內建清單
  • 免費模型(:free)排在清單最後並附可用性警告,僅建議測試用
  • 辨識完成後,結果自動貼至游標所在位置(模擬 Ctrl+V
  • 支援自訂 API Endpoint(可使用 OpenAI-compatible 的第三方服務)

🇹🇼 針對繁體中文深度優化的提示詞

設計原則:轉錄,不代寫。 語音輸入的本質是把口語變成文字,口語本身就有簡化的特性,貼近意思即可;AI 只做輔助校正,不喧賓奪主。因此提示詞刻意只保留最小限度的整理,凡是規則沒明講要改的,一律照原話輸出。

功能 說明
晶晶體支援 中英文混用語句自然處理,英文單字保留原文不翻譯、不中文化,大小寫照你講的原樣
智慧過濾廢詞 剔除「嗯」、「啊」、「呃」、「喔」、「唉唷」等停頓詞與狀聲詞。「然後」、「那個」、「的話」常帶實際語意,一律保留
智慧標點 根據語意自動補上逗號、句號,不需手動停唸標點
命令詞白名單 只有「更正」與「換行」兩個詞會被當成命令:說「更正」會捨棄前面說錯的內容改用後面接的,說「換行」會輸出換行字元。命令詞本身不會出現在輸出裡
其餘一律當內容 「不對」、「才對」、「等等」、「應該是」、「說錯了」全部照原話留著,不會被當成修正訊號去刪你的字。命令與語音分不出來時,一律以語音為主
空白錄音保護 錄音檔為空時直接返回空字串,嚴禁自行幻想內容

早期版本會自動把口語重寫成 1. 2. 3. 條列、把英文改成首字大寫、把說出的「底線」還原成 _,並用啟發式規則偵測口誤。這些已全數移除——它們是代寫而不是轉錄,且規則越多模型越容易在短句上憑空發明內容。

📖 自訂字典

  • 可設定個人化的專有名詞字典(人名、品牌、術語)
  • 採兩段式校正:先純轉錄,再以字典對逐字稿做拼寫校正(發音相同且字數相同才替換),字典詞不會被憑空插入輸出
  • OpenAI(Whisper)路徑例外:字典直接附加於 prompt 作為解碼偏置

⚙️ 設定頁面

  • 深色 / 淺色模式切換
  • 開機自動啟動;開啟後可再勾選「啟動時縮小至系統匣」,開機不跳視窗
  • 快捷鍵自訂(支援任意組合鍵):一般錄音與精簡模式各一組,設成同一組會被擋下
  • 錄音開始 / 結束提示音可挑選系統內建音效
  • 麥克風權限與輔助使用權限狀態即時顯示

🪟 Windows 支援

  • 自訂標題列:拖曳移動視窗、最小化,關閉鍵等於縮到系統匣(程式繼續在背景待命)
  • 系統匣圖示可隨時叫回視窗或結束程式

🔧 使用前準備

系統需求

  • Windows 10/11
  • Flutter 3.x(如需自行 build)

必要系統授權

  1. 麥克風 — 錄音所需

API Key

前往以下任一服務申請 API Key:

  • OpenAI(支援 Transcribe 語音辨識)
  • Google AI Studio(支援 Gemini 多模態)
  • OpenRouter(一把 Key 使用 Gemini / GPT Audio 等多家音訊模型)

🚀 執行方式

方法一:直接下載(推薦)

  1. 前往 Releases 頁面下載最新版本的 zip
  2. 解壓縮後直接執行資料夾內的 zero_type.exe(DLL 與 data 資料夾需留在同一層)
  3. 首次執行時,依照提示授予麥克風權限(語音輸入所需)
  4. 在 App 內的「模型設定」填入你的 API Key,即可開始使用

方法二:從原始碼執行(進階)

開發模式

git clone https://github.com/DaveTseng2019/ZeroType.git
cd ZeroType
flutter pub get
flutter run -d windows

專案不使用任何程式碼產生器(無 build_runner),pub get 完直接跑。

正式版建置

flutter build windows --release
# 產物在 build\windows\x64\runner\Release\zero_type.exe

🔄 更新方式

一般使用者:到 Releases 下載新版,直接覆蓋舊的 .exe 即可;或直接在 App 內「設定 → 關於」點「下載更新」。設定與歷史紀錄存放在使用者資料目錄,覆蓋安裝不會遺失。

從原始碼更新

git pull
flutter pub get
flutter run -d windows      # 或重新 build release

🌍 語言支援 & 貢獻 (Localization & Contribution)

  • 地區限制:目前此 App 主要針對 台灣使用情境 設計,輸出內容以 繁體中文英文 為主。未來是否有增加其他語言支援?若「有緣」的話之後再行考慮。
  • 回報問題與協助:如果你在使用上發現任何問題,或是單純想提供改進建議,歡迎在 本 repoIssuePull Request

📜 版本更新紀錄 (Release Notes)

[v1.0.21] 當前版本

  • 新增「常用詞彙」分頁 📌 — 歷史記錄每一筆多了一顆書籤按鈕,把辨識出來的句子存進常用詞彙,之後隨時複製取用;只留文字,不留音檔。清單自動排序、重複的不再存第二筆。要大量整理就按「編輯檔案」直接改 phrases.json(縮排格式,方便手改),改完按「重新載入」。程式增刪一律以檔案為準重讀,不會把你在外面的編輯蓋掉。
  • API Key 可以先測再用 🔑 — 模型頁的 API Key 旁多了「測試」,打各家最便宜的查詢驗證金鑰,不送音訊、不耗 token;成功播辨識完成音效、失敗播失敗音效,並顯示原因(金鑰無效、額度限制、連線失敗)。另有「清除這個 Provider 的 API Key」,附確認對話框。Provider 名稱旁也多了官方網站連結,可直接去申請金鑰。
  • 辨識失敗會出聲 ⚠️ — 過去 API Key 填錯、額度用盡或斷網時,畫面上什麼都不會發生,只默默寫進「紀錄」頁,你會一直等一段永遠不會出現的文字。現在會播失敗音效。原本的「貼上失敗音效」因此更名為「失敗音效」,同一顆設定涵蓋兩種失敗。
  • OpenAI 模型清單更新 🤖 — 新增官方現在建議的 gpt-transcribe($0.0045/分鐘)、gpt-4o-mini-transcribe,以及舊版 whisper-1。刻意不收 gpt-4o-transcribe-diarize:它不支援提示詞、必須用 diarized_json 格式,跟本程式的字典校正直接衝突。
  • 短句不再被加上句號 ✍️ — 「好」「知道了」這種四個字以內的回覆,加了句號反而不像講出來的話,現在會自動拿掉句尾的句號。問號、驚嘆號是語氣,一律保留;滿五個字的句子照舊標點。
  • 沒錄到聲音時告訴你量到多少 📉 — 「只錄到底噪」的訊息從「動態範圍低於 4.0」改成報這次實測的值(例如「動態範圍 2.3」)。被誤擋時你才看得出離門檻多遠。
  • 保留天數搬到歷史頁 🗂️ — 歷史記錄的保留天數不必再去設定頁找,直接在歷史頁標題下方調整(7/14/30 天,最多 30 天),旁邊寫明到期的記錄與音檔會在下次啟動時自動刪除。
  • 刪除圖示統一為品牌橘 🎨 — 歷史記錄與常用詞彙的刪除鍵不再是紅色;兩頁的圓框按鈕改用同一份共用元件,樣式從此一致。

[v1.0.20]

  • 提示音不再被音量吃掉 🔊 — 過去系統音量調低時,開始/結束的提示音等於不存在。現在播放前會先把 ZeroType 在「音量混音器」裡的分軌拉回滿格並解除靜音(那一軌被拉低多半是誤觸,Windows 還會記在登錄檔裡跨次啟動留著)。系統主音量則不擅自更動,只在它低於設定值時於提示音播放期間暫時頂上來,播完還原成原本的音量。門檻可在設定 → 音效的「提示音最小系統音量」調整,預設 20%,設 0 表示完全不干預。主音量被靜音時不會替你解除靜音——那是刻意的動作。
  • 貼上後還原剪貼簿 📋 — 貼上是拿剪貼簿當中介,過去會把你原本複製的東西直接蓋掉。現在會在覆蓋的前一刻記下來,貼完再還原。這段期間你自己複製了別的東西就不會被蓋回去;貼上失敗時也不還原,那時剪貼簿裡的辨識結果是唯一的救援手段。限制:只顧文字,原本放的是圖片或檔案救不回來。辨識結果不再留在剪貼簿,要重複使用請到「歷史記錄」複製。
  • 新增貼上失敗音效 ⚠️ — 文字沒送進目標視窗時,畫面上什麼都不會發生,過去只寫進「紀錄」頁,等你自己發現。現在會出聲,預設是系統的「災難性失敗」,也可以在設定 → 音效自己挑、按播放鍵試聽。
  • 介面統一 🎨 — 設定值原本存在兩個不同的橘色#FF7A00#EB5E14),音效檔名甚至不是橘的;現在滑桿數值、裝置名稱、音效檔名全部同一個橘、同一個字重。左側導覽列與設定頁的圖示放大到 28,各頁只有圖示的操作按鈕(播放、複製、刪除、顯示密碼等)統一為 24。歷史記錄的播放/複製/刪除加上同樣的圓形外框——實心與線條圖示在同一個尺寸下看起來就是不一樣大,外框把佔位畫出來才對得齊。對話框的按鈕文字改由主題統一供應,不再各寫各的。
  • 說明文字預設字級 15 → 16 🔠

[v1.0.19]

  • 歷史記錄改在程式內播放 ▶️ — 過去按播放鍵是把音檔丟給系統的預設播放器,會彈出另一個程式的視窗,而且按鈕立刻跳回原狀,播到一半也停不掉。現在跟提示音效走同一條路,直接在程式內出聲;播完按鈕自己復原,中途再按一次就停。
  • 預設音效對調 🔔 — 「錄音結束」改用語音結束、「辨識完成」改用 Notify。麥克風開、關本來就該是成對的 Speech On/Off,文字好了是另一回事。已經自己選過音效的人不受影響,按「恢復預設音效」才會套用。

[v1.0.18]

  • 只錄到噪音就不送辨識 🔇 — 沒有人聲的錄音送給 AI,它不會回「沒聽到」,而是憑空編一整段內容出來(實測十五秒的空錄音換回一整篇五百字的開學致詞,還照樣付費、照樣貼進游標所在的位置)。現在改看動態範圍——最大聲的一成音量除以最安靜的一成,講話一定有停頓所以拉得很開,只有底噪則是一條平的線。實測 13 筆錄音,正常說話 6.211.6、只有噪音 1.42.9,門檻取 4。原理與已知限制見上方「只錄到噪音就不送辨識」。
  • 精簡模式不再被底噪騙到提早收音 🎤 — 過去只要單一取樣跨過音量門檻就算「開口過」,接著安靜滿 1.5 秒便自動送出。小聲的麥克風(藍牙耳機實測峰值只有滿刻度的 6%)底噪本來就在門檻上下跳,零星跨個一兩框就把倒數點著了,於是你還沒開口、錄音就在兩秒半後被收掉,送出去的是一段環境噪音。現在要連續超過門檻 0.3 秒才算真的開口。副作用:極短的單字可能撐不到而不會自動停,那時再按一次熱鍵結束即可。
  • 「有聲音」的門檻拉高 🔊 — 原本的 RMS 100 只是「極安靜」,不是「有聲音」,改為 150。
  • 沒送出辨識時說明是哪一種 📋 — 「麥克風沒有送出任何資料」「整段沒有任何聲音訊號」「只錄到底噪」是三回事,訊息一樣的話查不下去。
  • 「紀錄」頁瘦身 🧹 — 時間後面的圖示、文字前的「文字:」、貼上目標的「走法=」都拿掉了。錯誤仍然是紅字。

[v1.0.17]

  • 修正貼上打不進 Visual Studio 內建終端機 🖥️ — Claude Code 的 VS 擴充套件把 CLI 跑在 Windows Terminal 的宿主控制項裡,那個控制項完全不處理鍵盤訊息,送過去的 Ctrl+V 等於不存在(手動按也一樣,所以只能用滑鼠右鍵)。它的貼上只實作在右鍵,而且是直接把剪貼簿內容寫進終端機。現在焦點在那種控制項時改送右鍵訊息,等同使用者手動按右鍵。注意:精簡模式在那裡不會自動送出,Enter 同樣進不去。
  • 修正貼上跑到 EmEditor 的選單列 📝 — 把視窗切回前景時,內部焦點要還原到哪由該程式自己決定,不保證是你剛剛打字的地方;EmEditor 會還原到選單列,Ctrl+V 就打在選單上。現在按下熱鍵那一刻會連「正在打字的那個控制項」一起記住,切回來之後補上焦點。
  • 沒記到目標時不再亂貼 🎯 — 按熱鍵時焦點若在 ZeroType 自己身上(例如剛開好程式就直接錄音),過去會把文字貼給當下最前面的視窗,可能是任何地方。現在改成不貼並在「紀錄」頁說明,文字仍在剪貼簿與歷史記錄裡。
  • 新增偵錯模式 🐞 — 設定 → 一般設定最下方。開啟後紀錄會一併寫進 debug.log,並多記下貼上目標(視窗、實際收到按鍵的控制項、走哪條貼上路徑);「紀錄」頁可開啟檔案位置,重開程式也會把檔案內容讀回畫面。清空紀錄或清除歷史時一併刪除。平常關著,回報問題時再開。
  • 修正歷史記錄「開啟目錄」開到「文件」 📂 — 音檔資料夾的路徑混用了正斜線與反斜線,檔案總管的命令列不吃,會默默改開預設資料夾。同時把每筆記錄各一顆的資料夾按鈕收成頁面上方一顆——所有錄音本來就都在同一個地方。
  • 按鈕文字大小跟著設定走 🔠 — 歷史記錄與紀錄頁的按鈕文字改用「項目標題」層級,不再寫死。

[v1.0.16]

  • 音效試聽變好用 🔊 — 設定 → 音效的播放鍵放大,改成跟歷史記錄一致的圓形樣式;「啟用音效」旁新增連續播放鍵,會依實際錄音流程依序播「開始 → 錄音結束 → 辨識完成」,播到哪一段,該列就會亮起來。
  • 一鍵恢復預設音效 ↩️ — 音效區最下方新增「恢復預設音效」,把三個音效與開關一次還原成初始設定。
  • 清除歷史時一併清空執行紀錄 🧹 — 歷史記錄的「全部清除」現在也會清掉「紀錄」頁的訊息,不用再分兩邊清。
  • 文字大小改為四級 🔠 — 新增「頁面標題」層級(預設 24 / 22 / 18 / 15)。設定頁裡原本寫死大小的下拉選單、滑桿數值、授權狀態等說明層級文字,現在會跟著「項目說明」的設定一起縮放。

[v1.0.15]

  • 新增精簡模式快捷鍵 ⚡ — 預設 Alt + X,專門給聊天視窗的短訊息用:講完不必再按一次熱鍵,開口後連續安靜滿 1.5 秒就自動結束錄音,文字貼上後自動按 Enter 送出。判斷「安靜」之前一定要先聽到有人開口,否則按下熱鍵還沒講話的那段沉默就會直接把錄音收掉。原本的 Alt + Z 行為完全不變。
  • 自動送出可關閉 ⚙️ — 設定 → 快捷鍵新增「精簡模式自動送出」開關(預設開)。關掉後精簡模式仍然講完自動停,只是不按 Enter,適合貼進不是「Enter 送出」的欄位。
  • 兩組快捷鍵不能設成同一組 ⌨️ — 撞在一起時第二個 RegisterHotKey 會失敗,變成其中一組無聲失效,現在直接擋下不儲存。

[v1.0.14]

  • 修正辨識結果貼到錯的視窗 🎯 — 錄音時記下的目標視窗,在辨識完成後常常切不回去:Windows 的前景切換權限屬於「當下的前景視窗」所在執行緒,原本卻是附掛到目標視窗的執行緒去要權限,辨識期間只要焦點跑到第三個視窗就必定被系統拒絕,Ctrl+V 於是打進當時最前面的那個應用程式。現在改附掛到正確的執行緒,目標視窗被最小化時會先還原,並且輪詢確認焦點真的切過去才送出貼上(取代原本盲等 50ms)。萬一仍切不回去就不貼,改在「紀錄」分頁提示——文字本來就已複製到剪貼簿,總比貼進別人的視窗好。

[v1.0.13]

  • 提示詞重整為「轉錄,不代寫」 ✍️ — 語音輸入的本質是把口語變成文字,不是幫你改寫。移除自動條列輸出(序數/連接詞 → 1. 2. 3.)、英文首字大寫與縮寫全大寫、口語描述還原(說「底線」就補 _)三項規則——它們是代寫而非轉錄,且規則越多模型越容易在短句上憑空發明內容。
  • 口誤修正改為封閉命令詞白名單 🎯 — 原本用啟發式偵測「不對」、「才對」、「應該是」、「說錯了」等字眼就砍掉前半句,實測 3/4 會把不是口誤的句子整段吃掉。現在只認「更正」與「換行」兩個命令詞,其餘一律當成內容照原話留著;命令與語音分不出來時以語音為主。
  • 「然後」、「那個」、「的話」不再當廢詞剔除 💬 — 這些詞常帶實際語意,列在剔除名單裡本身就是刪錯字的誘因。
  • 修正字典校正階段的兩種幻覺 🐛 — 兩段式校正的第二段沒有音檔,但規則檔寫著「內容來自隨附的音檔」,模型會判定沒有輸入而回問或加前言(實測 5 次中 3 次);加上純文字模式覆寫區塊解決。另外第二段偶爾會在短句尾巴憑空補一個 _,提示詞點名禁止與不點名的失敗率一樣,改由程式移除(第一段逐字稿本來就有 _ 時不動)。
  • README 後端清單不再列出 model 名稱 📝 — model ID 只維護在 providers.json 與計費表裡,README 不再放第二份會過期的副本。

[v1.0.12]

  • 語音辨識新增 Gemini 3.6 Flash 與 Gemini 3.5 Flash Lite 🆕 — OpenRouter 上兩個較新的音訊輸入模型,音訊計費分別為每百萬 token 1.5 與 0.3 美元,比清單中同級的 Gemini 3.5 Flash(3.0)便宜。
  • 移除失效的 GPT-4o Audio Preview 🧹 — 計費表裡留著一個 OpenRouter 已無此 ID 的條目,選不到也不會計費,直接刪除。整份模型清單與計費表已重新對照 OpenRouter API 逐一核對過。

[v1.0.11]

  • 修正錄音中 Esc 沒有作用 🔇 — 原本的取消鍵只掛在 Flutter widget 的鍵盤監聽,只有 ZeroType 視窗本身有焦點時才收得到;但實際錄音時焦點幾乎都在別的應用程式。改用低階鍵盤鉤子偵測 Esc,只看不攔(一律放行給其他 app),只有錄音中才會觸發取消;取消事件會寫進「紀錄」分頁。
  • 預設快捷鍵改為 Alt + Z ⌨️ — Alt + Space 在 Windows 是系統保留組合鍵(開啟視窗系統選單),跟這顆熱鍵搶焦點,改用不會跟系統衝突的 Alt + Z
  • README 整理 📝 — 拿掉功能特色段落裡的 macOS 按鍵符號描述(⌥ Option⌘V 等)與「macOS 與 Windows 各自音效清單」的說法,這些平台碼已於先前版本移除;開頭標語改為「一個按實際需求產生出來的繁體中文語音輸入工具」。

[v1.0.10]

  • 語音辨識新增小米 MiMo-V2.5 🇨🇳 — OpenRouter 上目前唯一支援音訊輸入的大陸廠商模型(Qwen、DeepSeek、MiniMax、Moonshot 皆尚未上架音訊版本),加入模型清單與計費表。
  • 藍牙麥克風錄音自動增益 🎚️ — 部分藍牙耳機透過 HFP 送出的音量明顯偏小。錄音結束後自動把整段峰值拉到滿刻度的 85%,只放大不衰減,上限 8 倍避免連底噪一起放大。
  • 提示音太短自動重播 🔁 — 系統音效實際長度低於 900ms 會讓人覺得沒放到,現在會自動重複播放頂到這個長度,最多 5 次。
  • 拆分「錄音結束」與「辨識完成」提示音 🔔 — 原本的「停止錄音音效」其實是辨識完成、貼上前才響,跟真正的錄音結束有好幾秒落差。現在拆成兩個各自可在設定頁調整的獨立提示音:「錄音結束音效」在麥克風真正關閉時響,「辨識完成音效」維持原行為;音效區塊標題旁也加上簡短說明。

[v1.0.9]

  • 修正快捷鍵畫面永遠顯示「Key」 ⌨️ — 根因是 Flutter 的 PhysicalKeyboardKey.debugName 在 release build 一律回傳 null(框架原始碼用 assert 包裝,release 會被整段移除),正式版因此不管設定哪個按鍵都只顯示通用的「Key」字樣。改為自行對應鍵盤代碼顯示按鍵名稱,並放大快捷鍵徽章的字體與間距。
  • 提高「無聲音」判斷門檻 🔇 — 錄音音量門檻由 1.0 提高到 100,避免把品質太差、幾乎聽不到內容的錄音送去辨識。
  • 歷史頁調整 📜 — 播放鍵改為醒目的實心圓底樣式;「全部清除」字體放大;「在檔案總管中顯示」改為直接開啟音檔所在目錄;清除全部後統計卡片會立即歸零,不必重開程式。
  • 結束程式移到側邊選單 🚪 — 從設定頁移到左側導覽列底部,並新增確認對話框避免手滑誤觸。

[v1.0.8]

  • 設定頁改版 ⚙️ — 「快捷鍵」移到最上方,跟「一般設定」同一層級的區塊標題與項目標題大小統一;「等待麥克風就緒」的說明文字精簡。
  • 新增可自訂文字大小 🔤 — 設定頁新增「字體」區塊,以 JSON 直接調整區塊標題/項目標題/項目說明三個層級的文字大小,即時套用、不用重開;數值一律不可小於 10px,格式錯誤或超出下限存檔會被擋下並提示。
  • 提示音時機調整 🔊 — 完成提示音改到送出貼上前才響(原本是拿到逐字稿當下就響,跟實際貼上還有半秒落差)。
  • 視窗與字體放大 🔍 — 主視窗預設尺寸放大,全域文字整體放大,提示詞/歷史/紀錄頁的內文字體也一併放大方便閱讀。
  • 修正視窗跑到螢幕外 🖥️ — 多螢幕環境下,視窗顯示時若上緣超出所有螢幕可視範圍會自動置中拉回來。
  • 移除過時文件 🗑️ — 專案初期的需求規格與任務拆解文件(Docs/)內容早已跟現況脫節,直接刪除。

[v1.0.7]

  • 修正辨識結果與說話內容無關的問題 🎯 — 根因不在提示詞而在音訊:噪音門檻把非語音壓成數位靜音,錄音有一半以上變成空白,而 chat 型語音模型收到稀疏音訊就會憑空編出一整段內容(實測 gemini-3-flash、2.5-flash、2.5-pro 對純靜音分別編出會議議程、訪談節目、電影台詞,換模型或改提示詞都壓不住)。濾除背景噪音預設改為 0(不過濾),獨立開關取消,強度 0 就是關閉。整段全靜音的錄音不會送出辨識。
  • 提示詞改為兩段式 📝 — 格式規則與範例跟音訊放在同一個請求時,模型會在音訊聽不清楚時把範例原封不動抄成答案。現在音訊那段只給最小指令,規則、範例、字典全部移到第二段純文字處理。
  • 錄音起始時機修正 🎙️ — 藍牙耳機要等 Windows 切換通話模式(實測約 0.93 秒),這段是空的。新增「準備中」狀態,提示音改在麥克風真的收得到聲音那一刻才響,不會再被切換的瞬間吃掉;錄音長度也從那一刻起算。換錄音裝置時會自動帶出合適的等待值(名稱含「耳機」給 1 秒,其他給 0)。
  • 文字輸出到正確的視窗 📋 — 辨識要好幾秒,期間焦點常常已經離開原本的欄位。現在會記住按下快捷鍵當下的視窗,貼上前先把焦點切回去。
  • 新增「紀錄」分頁 📄 — 錯誤與完成訊息原本用浮動提示顯示 2~3 秒,那段時間快捷鍵沒有反應,訊息也留不下來。改為寫進紀錄頁並立刻回到閒置。
  • 錄音時暫停背景音樂 🎵 — Windows 版原本沒有實作,音樂會蓋掉提示音。只暫停不自動恢復。
  • 其他 — 歷史頁在辨識完成後自動刷新;系統匣圖示於錄音中改為橘底;錄音輸入裝置以橘色標示。

[v1.0.6]

  • 修正單一修飾鍵熱鍵造成的按鍵失效 ⌨️ — 舊版可以把「單獨的右 Win 鍵」存成快捷鍵,但這種熱鍵註冊後擋不住開始選單,設定畫面會被蓋掉、連儲存都按不到;為此嘗試過的低階鍵盤 hook 更會讓外接鍵盤的 ch 變成 Win+C、Win+H 而失效。現在載入時若發現這類設定會直接丟棄、退回預設的 Alt + Space。快捷鍵一律需要包含一顆非修飾主鍵(筆電的 Copilot 鍵同樣被系統攔截,無法作為快捷鍵)。

[v1.0.5]

  • 字典校正改為兩段式 📖 — 字典與音訊同時給模型時,模型會把發音相近的詞「自我合理化」而憑空插入字典詞(提示詞措辭怎麼改都壓不住)。改為:先純轉錄(不帶字典),再用第二個純文字請求以「發音相同且字數相同」規則校正拼寫。有設字典時每次辨識多一個輕量請求(約 1 秒、$0.0002)。
  • 架構精簡 🧹 — 移除 auto_route(改用原生 IndexedStack)、get_it(改 top-level 單例)、freezed、整套 build_runner codegen 與 domain/data 分層;刪除無法進入的 TestingPage 與 macos/ 平台程式碼。lib/ 減少約 19%,依賴 21 → 16 個,改完程式碼直接 build 不需再跑 codegen。
  • 全新圖示 🎨 — 應用程式與系統匣圖示改為橘底白 Ø 文字符號設計,內嵌 16–256px 多尺寸原生渲染,解決小尺寸模糊問題。

[v1.0.4]

  • 獨立維護聲明 🍴 — 上游 nick1ee/ZeroType 自 2026-03 起無更新,本 repo 改為自行維護的正式版本線。
  • 設定頁新增「關於」區塊 🔗
    • GitHub 連結按鈕,直接開啟本 repo。
    • 版本檢查:比對 GitHub 最新 Release,落後時顯示「下載更新」直連該版本頁面。
  • 自訂字典修正 📖 — 字典詞彙原本會被辨識模型當成「優先使用」而憑空插入輸出;改為僅在音檔出現相近發音時才用於修正拼寫。

[v1.0.3]

  • Windows 支援 🪟
    • 可在 Windows 建置與執行:錄音、系統匣圖示、提示音效全部到位。
    • 自訂標題列支援拖曳移動與最小化,關閉鍵改為縮到系統匣。
    • 快捷鍵設定的按鍵標籤依平台顯示(Win / Alt 取代 / )。
    • 「開機自動啟動」新增「啟動時縮小至系統匣」選項,且每次啟動會重新寫入登錄檔路徑,移動執行檔後不會失效。
  • 新增 OpenRouter 供應商 🔀
    • 一把 API Key 即可使用 Gemini、GPT Audio 等多家音訊模型。
    • 模型清單改由 OpenRouter API 線上取得(僅列支援音訊輸入的模型),含即時費率;離線時退回內建清單。
    • 下拉選單顯示每百萬 token 輸入/輸出價格,並依品質級距與價位自動標示「推薦」。
    • 免費模型移到清單最後並標註可用性警告。

[v1.0.2]

  • 新增歷史紀錄頁 🎨
    • 提供歷史產生逐字稿的紀錄語音檔,並可提供檢視。
    • 新增總轉寫次數與總花費(USD)的持久化累計統計。
  • 最長錄音自訂 ⏱️
    • 設定中新增「最長錄音時間」選項,範圍 1-5 分鐘,預設為 1 分鐘。
  • 編輯器優化 ✍️
    • 提示詞編輯框寬度與高度現在會隨視窗大小自適應,不再固定長度。

[v1.0.1]

  • 錄音音效支援 🔊 — 可設定錄音開始與結束提示音。
  • 功能修復 🐛 — 修正 macOS 上視窗關閉後無法再次開啟的問題。
  • 提示詞優化 📝 — 進一步精簡轉錄用的系統 Prompt。

📝 License

MIT — 自由使用、修改、散布,唯需自備 API Key。

About

It's an open source STT application for macOS and Windows.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages