isRock.VoiceInput
1.0.0
See the version list below for details.
dotnet tool install --global isRock.VoiceInput --version 1.0.0
dotnet new tool-manifest
dotnet tool install --local isRock.VoiceInput --version 1.0.0
#tool dotnet:?package=isRock.VoiceInput&version=1.0.0
nuke :add-package isRock.VoiceInput --version 1.0.0
isRock.VoiceInput — MAI-Transcribe-2 全域語音聽寫
這是 Windows 上的 .NET 8 主控台程式,使用 MAI-Transcribe-2(Microsoft 官方文件) 辨識麥克風語音。啟動後會自動監聽全域快捷鍵:切換到記事本、Word 或瀏覽器,按住快捷鍵說話,放開後才上傳音訊轉寫。結果經 OpenCC 轉為臺灣繁體,可自動貼上或保留於剪貼簿。這不是即時串流辨識。
執行前準備
- 安裝 .NET 8 SDK,並在 Windows 開放此程式的麥克風存取權限。
- 準備支援 MAI-Transcribe-2 的 Microsoft Foundry Speech 資源,確認所在區域支援此模型。金鑰和 HTTPS 端點必須來自同一個資源,例如
https://your-resource.cognitiveservices.azure.com/;不要使用其他資源的金鑰、Speech SDK 即時語音端點或模型部署 URL。程式在 API 請求中選擇MAI-Transcribe-2,沒有另外一組模型專用的金鑰或端點。 - 準備網路連線;錄音完成後,音訊會上傳到你的 Azure 資源。
安裝與啟動
套件 ID 與程式碼 namespace 為 isRock.VoiceInput,安裝後的指令為 voiceinput。僅支援 Windows,執行時需要 .NET 8 Windows Desktop Runtime(安裝 .NET 8 SDK 已包含)。仍是主控台工具,不會開啟 Windows Forms 視窗。
使用已發布的套件
套件發布到 NuGet.org 後,使用者可透過以下指令安裝;本專案的打包作業不會自動發布套件:
dotnet tool install --global isRock.VoiceInput --version 1.0.0
voiceinput
從原始碼打包與本機安裝
在專案目錄執行以下指令,會將套件產生至 .\artifacts\packages,再從該資料夾安裝:
dotnet pack -c Release -o .\artifacts\packages
dotnet tool install --global isRock.VoiceInput --version 1.0.0 --add-source .\artifacts\packages
若安裝後找不到 voiceinput 指令,請確認 %USERPROFILE%\.dotnet\tools 在 PATH 中,並重新開啟 PowerShell。
設定 Azure 連線
安裝後,在 PowerShell 設定目前視窗的環境變數並啟動:
$env:AZURE_SPEECH_KEY = Read-Host "MAI-Transcribe-2 Speech resource key"
$env:AZURE_SPEECH_ENDPOINT = Read-Host "Same Speech resource endpoint (https://...)"
voiceinput
也可以直接執行 voiceinput:缺少環境變數時,程式會在啟動階段提示輸入。程式內輸入金鑰時不顯示字元;上方的 PowerShell Read-Host 會顯示輸入內容。程式內輸入的值只供本次執行,不會寫入檔案;非互動執行時則必須先設定兩個環境變數。請勿把金鑰寫進原始碼或提交版控;若金鑰曾公開分享,請到 Azure 入口網站重新產生。
開發時仍可在專案目錄使用 dotnet run,操作方式相同。移除全域工具可執行 dotnet tool uninstall --global isRock.VoiceInput;移除工具不會刪除個人設定檔。
選單與聽寫
執行 voiceinput 並完成必要的金鑰與端點輸入後,程式會清除主控台畫面、顯示有外框的選單,並立即開始監聽,不需再按「開始」。主控台可最小化,但程序必須保持執行。預設快捷鍵是 Ctrl+Shift+Space。
| 選項 | 功能 |
|---|---|
1 |
變更全域快捷鍵。接受至少一個 Ctrl、Shift、Alt 修飾鍵,以及 Space、A-Z、0-9 或 F1-F12 主鍵,例如 Alt+F8。 |
2 |
選擇剪貼簿模式。 |
3 |
暫停/恢復監聽。 |
4 |
暫停監聽,檢視最近一次轉寫的全文;按 Enter 返回。 |
0 |
結束程式。也可切回主控台按 Ctrl+C,或關閉主控台。 |
在主控台輸入選項數字後按 Enter。變更設定時監聽會短暫暫停,完成後自動恢復;若原本是手動暫停,修改設定後仍保持暫停。選單外框固定顯示最近轉寫的摘要;選項 4 可查看全文。
到其他程式的文字輸入位置按住快捷鍵說話;放開其中任一按鍵就停止錄音。狀態列會即時顯示綠色「監聽中」、紅色「錄音中」、黃色「轉寫中」、青色「已完成」,以及暫停或錯誤狀態。雲端轉寫期間不能開始下一次錄音。
剪貼簿模式
| 模式 | 完成轉寫後 |
|---|---|
| 自動貼上後還原(首次執行預設) | 將整段文字放進剪貼簿,以 Ctrl+V 貼上,稍候還原原內容。 |
| 自動貼上並保留 | 自動貼上,剪貼簿繼續保留轉寫文字,方便再次貼上。 |
| 僅複製 | 不自動貼上;使用者自行選擇位置貼上剪貼簿中的轉寫文字。 |
自動貼上只會在錄音時的視窗仍在前景且目標不是主控台時執行;否則可用選項 4 查看結果,但不會改動剪貼簿。還原模式下若其他程式在貼上期間改動剪貼簿,程式會跳過還原,以免覆蓋較新的內容;特殊剪貼簿格式或延遲讀取剪貼簿的程式,可能無法完整還原或貼上。管理員權限視窗、密碼欄位或特殊編輯器也可能拒絕模擬貼上。快捷鍵若與輸入法或其他程式衝突,可改用選項 1。
快捷鍵及剪貼簿模式保存在 %LOCALAPPDATA%\MaiTranscript\settings.json,重新啟動仍生效;金鑰、端點與轉寫文字不會存入此設定檔。設定檔損壞時可檢查內容或刪除檔案,恢復首次執行的預設值。程式保持主控台模式,只使用 Windows Forms 的剪貼簿 API,不會開啟表單視窗。
辨識方式與參考
程式以預設麥克風錄製 16 kHz/16-bit/單聲道 WAV,呼叫 Transcriptions - Transcribe(API 版本 2025-10-15)。請求中的 enhancedMode.model 固定為 MAI-Transcribe-2、transcribeStyle 為 clean;未指定 locales,保留中英混合語音的自動語言辨識。
MAI-Transcribe-2 不支援自由格式提示詞;Program.cs 的 phraseList.phrases 是繁體中文軟體開發詞彙與英文技術術語的辨識提示,可自行加入專案專有名詞。模型語言表將 zh 列為簡體中文,因此程式收到結果後使用 OpenCC 的 s2twp 規則轉成臺灣正體與常用詞彙;文字轉換不能修正語音辨識錯誤,多義詞仍可能需要校對。
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.4.1 | 94 | 10/13/2026 |
| 1.4.0 | 84 | 10/12/2026 |
| 1.3.0 | 91 | 10/10/2026 |
| 1.2.0 | 98 | 10/9/2026 |
| 1.1.8 | 93 | 10/9/2026 |
| 1.1.7 | 100 | 10/6/2026 |
| 1.1.6 | 104 | 10/5/2026 |
| 1.1.5 | 109 | 10/4/2026 |
| 1.1.4 | 103 | 10/4/2026 |
| 1.1.3 | 106 | 10/4/2026 |
| 1.1.2 | 101 | 10/3/2026 |
| 1.1.1 | 92 | 10/3/2026 |
| 1.1.0 | 99 | 10/3/2026 |
| 1.0.0 | 101 | 10/3/2026 |