Repository navigation
Releases: saijo0404/DiarizeFlow
Releases · saijo0404/DiarizeFlow
Release list
DiarizeFlow v2.0.0 - Neural TSE, Smart Audio Routing & Modular HUD
[2.0.0] - 2026-10-04
🚀 里程碑概述 (Milestone Overview)
DiarizeFlow 迎來重大架構躍進!自 v1.0.0 以來歷經 62 個 Commits 與 29 個 Issues 的深度打磨,專案已由初期的單體原型全面升級為工業級即時語音分離、辨識與翻譯微核心架構。單元與整合測試規模自 77 題擴增至 254 題全數通過 (100% Passed),技術債與 DeprecationWarning 歸零。
🌟 重大特性 (Major Features)
-
目標講者語音提取 (Target-Speaker Extraction / TSE) (#54)
- 解決單收音音軌中「多人同步重疊說話 (Overlap / Cross-talk)」波形無法分離的業界難題。
- 復用 Sortformer 512 維聲紋嵌入作為條件提示向量,結合時頻遮罩 (Time-Frequency Masking) 重建目標講者的乾淨單一人聲波形,使下游 ASR 辨識錯誤率 (WER) 大幅下降。
- 採動態按需啟動機制:單人發話時零額外算力開銷,多講者重疊時即時介入分軌。
-
SmartAudioRouter 雙軌智慧動態路由與串音抑制 (#30)
- 獨立排程本地麥克風 (Track A) 與系統音訊 Loopback (Track B)。
- 結合動態能量門控、聲學回音串音抑制 (Bleed Suppression) 與跨 Chunk 平滑 Cross-fading,徹底消除爆音與時間膨脹。
-
永久聲紋資料庫與自訂講者身份追蹤 (Voiceprint Database) (#11)
- 支援將暫時講者命名並釘選至磁碟,提供自適應聲線更新與黃金錨點保護 (Anti-Drift)。
- 即時將講者標籤與專屬色系同步至 HUD 卡片與遠端客戶端。
-
串流神經 SAD 多軌分流 (Streaming Sortformer SAD) (#13)
- 全面替換傳統能量 VAD,由 NVIDIA Nemotron-3 (Sortformer) 8 通道發話後驗機率驅動時間軸切分。
- 支援語者邊界預編碼嵌入單次推論復用 (#31),消除重複 ONNX 前向傳播。
-
輕量化一鍵模型下載與初次引導工具 (#51)
- 新增
scripts/download_models.py,支援自動偵測硬體並自 Hugging Face Hub / ModelScope 一鍵下載預轉換的 ONNX 模型、CMVN 均值方差表與 Tokenizer 模型。
- 新增
-
全新模組化桌面 HUD 懸浮視窗 (#36)
-
Linux Wayland 顯示環境深度適配 (#53)
- 啟動時自動感知
XDG_SESSION_TYPE,在 Wayland 環境下主動指引托盤與視窗控制操作。
- 啟動時自動感知
-
音訊串流協定擴充二進位標頭 (Binary Frame Protocol) (#52)
/ws/audio支援 8-byte 二進位 Header (包含 Magic byte、版本握手、音軌來源標記與採樣率資訊),並對舊版客戶端 100% 向下相容。
⚡ 效能與後端架構改進 (Performance & Architecture)
- FastAPI Lifespan 現代化升級:將
server.py舊式startup/shutdown遷移至現代標準@asynccontextmanager async def lifespan,全套測試告警歸零 (#48)。 - Mel Spectrogram 濾波矩陣與窗函數全快取:預先快取
mel_basis與 Hamming 窗,消除串流循環中重複構建開銷 (#49)。 - LLM 翻譯連線池化與並行化:改用持久化
aiohttp.ClientSession連線池與/models快取,請求延遲降低 50~150ms (#15, #33)。 - 前後端分離狀態同步:前端設定變更透過非同步 REST API
POST /api/config即時推送到後端伺服器 (#32)。 - 依賴輕量化解耦:將
nemo-toolkit與onnxsim移至[project.optional-dependencies] export,普通使用者安裝體積縮減 80% 以上 (#35)。 - 移除舊式 Web 前端:精簡程式庫,全力深耕原生高效能 PySide6 懸浮 HUD (#16)。
🛠️ 漏洞修復與強固性提升 (Bug Fixes & Robustness)
- 修復純 uv 環境打包失敗問題:處理
.venv缺失pip模組導致的自動安裝 PyInstaller 崩潰,並在pyproject.toml宣告build可選依賴群組 (#57)。 - 修復音訊重採樣與混音漂移:改採多相多項式重採樣 (
resample_poly) 與滑動視窗時鐘漂移補償 (#1, #4)。 - 修復 WebSocket 事件處理遺漏:過濾
speaker_deleted等控制訊息,避免 HUD 渲染空白卡片 (#28)。 - 配置反序列化安全防呆:增強
AppConfig.from_dict欄位過濾與檔案損毀安全復原 (#2, #29)。 - 補充執行期缺失依賴:補齊
soundcard、faster-whisper、ml-dtypes、sentencepiece、kaldi-native-fbank等執行期套件 (#3)。
DiarizeFlow v1.0.0 - Real-time Speaker Diarization & Translation HUD
DiarizeFlow v1.0.0 正式發布 (Release Notes)
🚀 DiarizeFlow v1.0.0 是一個專為即時語音辨識、多語者分離與即時翻譯設計的現代化桌面懸浮字幕(HUD)應用程式。結合 NVIDIA Nemotron-3-Diarization (Sortformer)、Faster-Whisper Large-v2、SenseVoiceSmall 以及智慧音量自動增益(AGC),帶來極致低延遲、高保真度的多講者即時翻譯體驗。
🌟 核心功能與亮點
1. 🎙️ NVIDIA Nemotron-3 Diarization 官方 Low-Latency 架構
- 官方 1.04s 串流延遲規格:嚴格實作 NVIDIA 官方 Low-latency 設定(
CHUNK_LEN=9、RIGHT_CONTEXT=4、FIFO_LEN=264、SPKCACHE_LEN=264、UPDATE_PERIOD=222)。 - 即時多人對話交替切分 (
diarize_and_split):採用 Sortformer 8 聲軌時間維度預測與滑動視窗,當多人持續交替發話時,自動在毫秒級時間邊界切分不同講者,分別送入 ASR 與翻譯,徹底解決「長時間累積音訊被混成同一個講者」的問題。 - 支援多元延遲模式:
low_latency:1.04s(官方推薦預設)very_low_latency:0.64s(極速模式)ultra_low_latency:0.32s(超即時極限模式)offline:30.4s(批次長音訊基準)
2. ⚡ 雙 ASR 語音辨識引擎自由切換
- SenseVoiceSmall:超低延遲(60~80ms)多語言語音辨識,支援中、英、日、韓、粵等語言,資源消耗極低。
- Faster-Whisper Large-v2:旗艦級高辨識率模型,支援 CUDA Tensor Core(FP16 / INT8)硬體加速,適合對長語意與專業名詞要求嚴苛的場景。
3. 🔊 智慧動態音量調節 (AGC)
- 內建二階自適應自動增益控制,自動將微弱發音(如能量 0.006)智慧放大至最佳人聲區間(黃金目標 -24 dBFS),並對爆音瞬間壓限防破音,大幅提升 VAD 檢測率與 ASR 辨識準確率。
4. 🪟 原生 PySide6 透明懸浮字幕 HUD
- 滑鼠穿透模式 (Click-Through):在玩全螢幕遊戲、看實況或開會時,懸浮視窗不搶焦點、不干擾操作。
- 即時延遲診斷 Tooltip:隨時查看當前音訊段長、ASR 辨識耗時、Nemotron 語者分離耗時、LLM 翻譯耗時與總處理毫秒數。
- 視覺化雙語對照:即時顯示「講者編號 + 原始語音 + 翻譯字幕」,支援自訂字型大小、透明度與自動淡出秒數。
5. 🛠️ 首次啟動硬體自適應量化校準
- 支援首次啟動時自動探測本機 GPU 架構(Ada Lovelace / Blackwell / Ampere / Turing),自動生成最佳量化模型(FP16 Tensor Core / INT8),未來啟動直接秒開。
📦 安裝與啟動
方式 A:透過 uv 一鍵啟動 (推薦)
# Clone 專案
git clone https://github.com/saijo0404/DiarizeFlow.git
cd DiarizeFlow
# 同步依賴並啟動
uv sync
uv run python scripts/run_app.py方式 B:Windows 免 Python 執行檔打包
# 執行打包腳本生成免安裝目錄 (dist\DiarizeFlow)
build_windows.bat📋 提交變更摘要 (Git Changelog)
feat(diarizer): 依據 NVIDIA 官方 HuggingFace 模型卡全面升級 Nemotron-3 Low-Latency 串流規格與狀態緩存機制。feat(turn-detection): 實作diarize_and_split時間維度講者輪替切分,防止多講者音訊堆疊混雜。feat(vad): 優化 VAD 累積上限為 3.5s、停頓間隔 300ms,換句更靈敏、字幕即刻輸出。feat(ui): 設定視窗新增 Nemotron 串流分離延遲切換選單與 HUD 診斷浮動資訊。chore(security): 全面清理外部絕對路徑與本地日誌,加固.gitignore確保零隱私洩漏。