本地優先的 AI 會議助理
錄音 · 語音轉文字 · AI 校對 · 智慧摘要
中文版 | English
VoxNote 是一款以本地優先設計的桌面會議助理。所有資料儲存於本機 SQLite,錄音檔案存放於本地磁碟,無強制雲端依賴。
支援使用 AssemblyAI(雲端)或 Whisper(本地)進行語音轉文字,並整合多種 LLM 提供商(OpenAI、Claude、Gemini、Ollama、OpenRouter 等)進行 AI 校對與摘要生成。
會議錄音 → 語音轉文字 → AI 校對 → 智慧摘要 → 匯出
- 建立、編輯、刪除會議,支援分類與標籤
- 參與者管理(含常用參與者快速選取)
- 會議模板(預設標題、分類、參與者)
- 桌面錄音流程,支援停止後預覽再儲存
- Windows 支援「僅麥克風 / 僅電腦音訊 / 麥克風 + 電腦音訊混音」錄音
- 支援上傳音訊檔案(
.wav/.mp3/.m4a/.ogg/.aac/.flac,最大 500MB) - 自訂音訊播放器(播放/暫停、進度條、靜音)
電腦本地音訊錄音目前以 Windows 為優先支援平台,會擷取系統預設播放裝置的聲音。
- AssemblyAI(雲端):自動語言偵測、說話者分離
- VoxNote 自架 ASR 轉錄服務:結合 Breeze-ASR-26 與 WhisperX 的自架轉錄端點(需 NVIDIA GPU)
- 本地 Whisper:偵測 PATH 中的
whisper、faster-whisper、openai-whisper
- 修正錯字、同音異字、標點錯誤
- 保留原始時間戳記(
[MM:SS]) - 自動偵測縮略品質,不符標準時提示確認
- 保存原始版本與校對版本,可隨時切換
- 生成結構化 Markdown 摘要(主題、待辦事項、重要時間點等)
- 支援自訂 Prompt
- 整包會議匯出:逐字稿、摘要、音訊一站式打包
- 逐字稿 TXT(原始版 / 校對版)
- 摘要 Markdown
- 全新暖色調檔案館風格主題
- 垂直單欄會議列表佈局,強調視覺層級
- 純文字符號導航列,優化可讀性
| 層次 | 技術 |
|---|---|
| 桌面框架 | Tauri 2.0 |
| 後端 | Rust + sqlx(SQLite) |
| 前端 | Vanilla TypeScript + Vite |
| AI 呼叫 | reqwest(HTTP)— 無第三方 AI SDK |
| 設定儲存 | TOML(AppData 目錄) |
src/ # 前端(Vanilla TypeScript)
├── api/ # Tauri invoke 封裝層
├── components/ # DOM 元件
├── pages/ # 頁面渲染(Hash Router)
└── types/index.ts # 全域型別定義
src-tauri/src/ # Rust 後端
├── commands/ # Tauri IPC handlers
├── db/ # SQLite CRUD + migration
├── ai/ # LLM 統一呼叫入口(call_llm)
├── asr/ # 語音辨識(AssemblyAI + 自架服務 + 本地 Whisper)
└── config/ # AppConfig 讀寫
- Windows 10 / 11(x64)
- macOS 12+(Apple Silicon 或 Intel)
- Node.js 18+(或 Bun)
- Rust 1.80+(含
cargo) - Tauri CLI v2
Windows 額外需要(C++ Build Tools):
winget install Microsoft.VisualStudio.2022.BuildTools
git clone https://github.com/chinglee17/voxnote.git
cd voxnotenpm install
# 或使用 bun
bun install# 僅啟動 Vite 前端(port 1420)
npm run dev
# 啟動完整 Tauri 應用(含 Rust 後端,首次編譯約 2-5 分鐘)
npm run tauri devnpm run tauri build產出物位於 src-tauri/target/release/bundle/。
啟動應用後,前往「設定」頁面設定 AI 供應商。
| 供應商 | 需要 API Key | 說明 |
|---|---|---|
| OpenAI | 是 | GPT-4o 等 |
| Claude | 是 | Anthropic Claude 系列 |
| Gemini | 是 | Google Gemini 系列 |
| OpenRouter | 是 | 多模型代理 |
| Ollama | 否 | 本地 LLM,需先安裝 Ollama |
| 自訂端點 | 可選 | 任何 OpenAI 相容 API |
# 安裝並執行 Ollama
ollama serve
# 拉取模型(範例)
ollama pull llama3.2
ollama pull qwen2.5在 VoxNote 設定中填入 Endpoint http://localhost:11434 並選擇模型即可。
- 前往 AssemblyAI 申請 API Key(有免費額度)
- 在 VoxNote 設定 → ASR 供應商選「AssemblyAI」,填入 API Key
位於 server/,以 Breeze-ASR-26(繁體中文台灣用語最佳)搭配 WhisperX(詞級對齊與語者分離)提供 OpenAI 相容的轉錄端點,供自有環境部署。
狀態:API、Docker 與部署契約已完成,尚未在具備 GPU 的機器上實機驗證轉錄品質與效能。
- 具備 NVIDIA GPU 的機器(含 Driver、Docker Engine、NVIDIA Container Toolkit)
- Hugging Face access token(啟用語者分離時所需)
- 將 Breeze-ASR-26 權重轉為 CTranslate2 格式(約 6GB)
cd server
docker compose up -d --build
curl http://localhost:8000/health完整部署步驟(模型轉檔、pyannote 授權、環境變數、小 VRAM 機器調校)詳見 server/README.md。
設定 → 語音轉錄 → 選擇「VoxNote 轉錄服務」,Base URL 填入服務位址(例如 http://192.168.0.10:8000)。
本服務預設無驗證機制,請部署於受信任的網路環境。
安裝以下任一工具並確保在系統 PATH 中可被呼叫:
# 選項 A:openai-whisper(Python)
pip install openai-whisper
# 選項 B:faster-whisper(較快)
pip install faster-whisper
# 選項 C:whisper.cpp(C++,效能最佳)
# 詳見 https://github.com/ggml-org/whisper.cppVoxNote 啟動時會自動偵測已安裝的工具,在設定頁面中選取即可。
歡迎提交 Issue 與 Pull Request。
- Rust 錯誤處理:使用
?或anyhow,禁止.unwrap() - 新增後端功能:在
src-tauri/src/commands/新增 command,並在src-tauri/src/lib.rs注册 - 新增前端 API 呼叫:在
src/api/對應檔案封裝,禁止在頁面 / 元件直接呼叫invoke() - DB schema 變更:使用
ALTER TABLE(向下相容),禁止刪除現有欄位 - 主鍵一律使用 UUID v4 字串
feature/功能名稱
fix/問題描述
VS Code + Tauri + rust-analyzer
本專案使用 Tauri 建置
