narcotic-sh/senko

Very fast, accurate speaker diarization

解決的問題

Senko 是一個高效率的說話者分離流程,專門用於識別音訊記錄中的「誰在何時說話」。它著重於極致的速度與準確性,可在現代硬體(例如 RTX 4090)上僅用數秒(例如 5 秒)處理一小時的音訊。

工作原理

Senko 是 3D-Speaker 流程的優化版本,採用四階段流程:

  1. 語音活動檢測 (VAD):使用 Pyannote segmentation-3.0 或 Silero VAD 來找出語音段落。
  2. 特徵提取:提取 Fbank 特徵,利用 kaldifeat 在 NVIDIA 系統上實現 GPU 加速。
  3. 嵌入生成:使用 CAM++ 模型進行批次推論,產生說話者嵌入。
  4. 聚類:使用譜聚類或 UMAP+HDBSCAN 對相似嵌入進行分組,支援 NVIDIA 顯示卡的 RAPIDS 提供 GPU 加速。

在 Mac 上,Senko 借助 CoreML 進行 VAD 和嵌入處理,以優化 Apple Silicon 的效能。

適用對象

需要快速、準確且與語言無關的說話者分離工具,並可整合至轉錄服務或媒體播放器中的開發者與研究人員。

主要亮點

  • 極致速度:在高階 GPU 與 Apple M3 芯片上,一小時音訊處理時間低於 8 秒。
  • GPU 加速:Linux/WSL 上的 NVIDIA 用戶可享有完整的 GPU 流程(CUDA 7.0+)。
  • 語言無關:透過聚焦聲學模式,支援多種語言,雖以英語與中文為優化目標。
  • 跨平台支援:原生支援 Linux、macOS 與 Windows(透過 WSL)。
  • 易於整合:提供 JSON 與 RTTM 輸出格式,方便整合至其他應用。

相關

  • 專案
  • 專案
  • 專案
  • 專案