TOOL FIELD NOTE

Nemotron 3 Diarization:支援最多 8 位說話者的開放權重模型

Nemotron 3 Diarization:支援最多 8 位說話者的開放權重模型 語音轉文字(ASR)可以把錄音變成文字,但多人會議還有另一個問題:每一句話是誰說的?Speaker diarization 會將音訊切成不同時間區段,並為每個區段標記匿名的說話者,例如 speaker_0、speaker_1。這些時間軸再與 ASR 的逐字時間戳結合,才能產生帶有說話者標籤的逐字稿。 NVIDIA 的 Nemotron 3 Diarization 就是用來處理這項工作的開放權重模型。它支援離線與串流推論,最多處理 8 …

PUBLISHED 2026.09.25
READING TIME 2 MIN
UPDATED 2026.09.25
01

COMMUNEIFY
EDITORIAL

把複雜的技術,整理成值得慢慢讀完的內容。

Nemotron 3 Diarization:支援最多 8 位說話者的開放權重模型

語音轉文字(ASR)可以把錄音變成文字,但多人會議還有另一個問題:每一句話是誰說的?Speaker diarization 會將音訊切成不同時間區段,並為每個區段標記匿名的說話者,例如 speaker_0、speaker_1。這些時間軸再與 ASR 的逐字時間戳結合,才能產生帶有說話者標籤的逐字稿。

NVIDIA 的 Nemotron 3 Diarization 就是用來處理這項工作的開放權重模型。它支援離線與串流推論,最多處理 8 位說話者,也能表示重疊語音。模型只會輸出匿名頻道與時間資訊,不會判斷 speaker_0 實際是哪一個人。

模型輸入與輸出

模型接受 16 kHz、單聲道的 .wav、.flac、.opus 或 .mp3 音訊。輸出可以是每個時間框的說話者活動機率,也可以後處理成開始時間、結束時間與說話者標籤。

它最多提供 8 個說話者頻道,頻道順序依照說話者首次出現的時間排列。這個設計讓串流處理時可以沿用前面區塊的頻道順序,但它仍不是身分辨識系統;若需要對應到真實姓名,還要由應用程式結合會議名單、使用者資料或其他驗證方式處理。

如何處理串流音訊

Nemotron 3 Diarization 採用 31 層 Transformer 編碼器,搭配 RoPE 位置編碼。輸入的 Mel 頻譜以 10 ms 為步長,再透過特徵堆疊形成 80 ms 的編碼器幀率,最後由 Conv1D 層將預測結果轉回 10 ms 的輸出解析度。模型大小約為 99.2M 參數。

在串流模式中,模型使用 Arrival-Order Speaker Cache(AOSC)保存較早出現的說話者資訊,並以 FIFO queue 提供近期音訊上下文。兩者分工不同:前者協助跨區塊維持說話者順序,後者提供目前區塊附近的聲音資訊。這有助於降低串流過程中的頻道切換,但實際效果仍會受到噪音、混響與錄音環境影響。

延遲設定

官方提供同一個 checkpoint 的多組推論設定。輸入緩衝延遲的計算方式是:

(CHUNK_LEN + RIGHT_CONTEXT) × 80 ms
模式輸入緩衝延遲FIFO區塊長度右側上下文
離線風格30.4 秒4034040
低延遲1.04 秒26494
極低延遲0.64 秒26462
超低延遲0.32 秒26431

這裡的延遲只代表模型開始推論前需要累積的音訊,不包含模型運算、網路傳輸、ASR 或應用程式處理時間。模型技術上可以使用更短的輸入緩衝,但官方建議的最低設定是 0.32 秒;選擇設定時仍需要在自己的資料上測試準確率與端到端延遲。

評測結果應如何解讀

NVIDIA 官方文章表示,Nemotron 3 Diarization 在 VoiceArena 初始 Diarization-Bench 中,於 12 個系統、17 組設定裡排名第一,DER 為 14.72%。該評測使用約 22 小時的 139 段英文對話,並將重疊語音納入計分。這是特定資料集與評測規則下的結果,不能直接當成所有語言或所有錄音環境的表現。

在模型卡列出的 1.04 秒設定中,與 NVIDIA 過去的四人 Sortformer 基準相比,8 組測試條件的平均相對 DER 降幅為 41.0%。例如:

  • DIHARD III 全部資料:13.18%,基準為 19.60%。
  • AliMeeting Test Near:6.59%,基準為 12.47%。
  • NOTSOFAR1 MHM:7.70%,基準為 22.12%。
  • CALLHOME-Part2:10.29%,基準為 11.31%。

DER 越低代表錯誤越少,但不同資料集的錄音距離、說話者數量、語言與標註方式都不同。模型卡也提醒,這些速度與準確率數據是在 NVIDIA Blackwell RTX PRO 5000、BF16 與 NeMo PyTorch backend 條件下測得;例如 30.4 秒、Batch Size 32、使用 torch.compile() 時的 RTFx 為 15,113。這類批次吞吐量不等於單一串流的實際端到端延遲。

開始使用

模型卡提供 Transformers 的載入方式,基本流程如下:

import torch
from transformers import AutoModelForAudioFrameClassification, AutoProcessor
from transformers.audio_utils import load_audio

model_id = "nvidia/Nemotron-3-Diarization"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForAudioFrameClassification.from_pretrained(
    model_id,
    device_map="auto",
)

audio = load_audio("conversation.mp3", sampling_rate=16_000)
inputs = processor(audio, sampling_rate=16_000).to(
    model.device,
    dtype=model.dtype,
)

with torch.inference_mode():
    logits = model(**inputs).logits

segments = processor.extract_speaker_dict(
    logits,
    inputs.attention_mask,
)[0]

如果要處理即時音訊,可以使用 low_latency、very_low_latency 或 ultra_low_latency 串流模式。若要在本地以命令列執行,也可以參考模型卡列出的 NeMo-Speech.cpp 用法:

nemo-speech diarize meeting.wav
nemo-speech transcribe meeting.wav --diarize --json

需要完整逐字稿時,還要另外使用 ASR 模型取得文字與 word timestamps,再把文字時間點與 diarization 區段對齊。重疊語音可能同時對應多個說話者,簡單的時間中點對齊法只能作為起點,正式系統仍應使用實際資料評估。

部署限制與授權

  • 模型最多支援 8 個說話者;超過上限時,語音可能遺失或被分配到錯誤頻道。
  • 噪音、嚴重混響、遠場收音、長時間錄音與資料分布差異,都可能增加漏認、誤報、邊界錯誤或說話者混淆。
  • 輸出是匿名說話者頻道與時間戳,不是身分驗證結果。
  • 模型卡標示使用 OpenMDW License Agreement 1.1,並說明可用於商業與非商業用途;實際部署前仍應閱讀完整授權條款。

相關連結

分享至:
Featured Partners

© 2026 Communeify. All rights reserved.