ローカル音声認識・音声合成
Nemotron 3 Diarization:会議で誰が話したかを記録する
文字起こしは便利です。ただ、数日後に「そこは私が担当します」とだけ残っていたら、誰の発言か録音を聞き直すことになります。Nemotron 3 Diarization1は、音声を文章にするASR2とは別に、話者と発話の時間帯を整理するモデルです。新しいモデルを導入する前に、今の会議録に何が足りないかを考えてみましょう。
文字起こしの後に残る疑問
3人の会議で「原稿は明日送ります」「数字は私が確認します」と続いたとします。文字が正しくても、担当者がなければ作業リストには使いにくいものです。必要なのは、より流暢な要約よりも、発言の時刻と話者を残すことかもしれません。
ASRは「何を話したか」、diarizationは「どの話者がいつ話したか」を担当します。両方を対応付けて初めて話者付きの会議録になります。その後ローカルLLM3で決定事項や作業を整理する場合も、元の発言に戻れる時刻を残すと便利です。

8人を区別する、という意味
2026年9月23日公開のNemotron 3 Diarizationは、約1億パラメータのオープンウェイトモデルです。登場順に汎用の話者ラベルを割り当て、発話区間を返します。speaker_0が同僚の実名を意味するわけではありません。名前との対応には録音の確認や会議情報が別途必要です。
2人が同時に話すと、同じ時刻に複数の話者を示せます。ただし、声ごとにきれいな音源を取り出すsource separationとは異なります。重なりを検出しても、すべての単語と発話者が確定するわけではありません。8人を超える会話も対応人数の範囲外です。
録音する言語に合わせてASRも選ぶ
話者分離モデルの名前だけで韓国語の文字起こし品質は判断できません。英語の会議、英語の製品名が混ざる韓国語の会話、日本語のインタビューではASRへの要求が異なります。Qwen3-ASR・Whisper・Nemotron 3.5などを検討し、使う実装が単語単位の時刻を出せるか確認しましょう。
きれいな朗読だけでなく、実際の用途に近い会話で試しましょう。割り込み、離れた席の話者、長い沈黙の後に再び話す人を含めます。文章の正しさ、話者番号の維持、重なった区間の検出を別々に確認すると、どこを直すべきか分かりやすくなります。

Macにも実行方法がある:モデルと実行ソフトを分ける
NVIDIAのNeMo PythonはLinuxとNVIDIA GPU4を中心に案内されていますが、このモデルをNVIDIA製GPUでしか使えないわけではありません。同社のNeMo-Speech.cppにはApple SiliconのMetal、CPU5、CUDA6などの実行経路があります。インストールしたビルドの対応状況はdoctorコマンドで確認します。
Mac・iPhoneアプリ向けには、Nemotron 3 Diarizationに対応するArgmax Pro SDK 3もあります。Pythonの重みやC++ CLI7とは別製品なので、利用・配布条件は別に確認します。どの方法でも、対応していることと、自分の録音を何秒で処理できるかは分けて読みましょう。
| 環境 | 実行方法 | 最初に確認すること |
|---|---|---|
| Apple Silicon Mac | NeMo-Speech.cpp · Metal | ビルドのMetal対応と選択モデル |
| NVIDIA GPU PC | NeMo-Speech.cpp · CUDA / NeMo Python | ドライバ・実行ソフトの版とASR併用時のメモリ |
| GPUのないPC | NeMo-Speech.cpp · CPU | まず短い録音の処理時間を確認 |
| Mac・iPhoneアプリ | Argmax Pro SDK 3 | SDKの利用条件とアプリへの組み込み |
実行経路ごとの確認事項
Apple Silicon Mac
- 実行方法
- NeMo-Speech.cpp · Metal
- 最初に確認すること
- ビルドのMetal対応と選択モデル
NVIDIA GPU PC
- 実行方法
- NeMo-Speech.cpp · CUDA / NeMo Python
- 最初に確認すること
- ドライバ・実行ソフトの版とASR併用時のメモリ
GPUのないPC
- 実行方法
- NeMo-Speech.cpp · CPU
- 最初に確認すること
- まず短い録音の処理時間を確認
Mac・iPhoneアプリ
- 実行方法
- Argmax Pro SDK 3
- 最初に確認すること
- SDKの利用条件とアプリへの組み込み
新しい8人対応モデルを指定して試す
OSに合ったNeMo-Speech.cppを導入し、新しいターミナルを開きます。最初の2行は環境とモデル一覧を確認し、pullで重みを先に取得します。版によって既定モデルが異なる場合があるため、例ではNemotron 3の別名を明示します。一覧に名前がなければ導入した版を確認してください。
meeting.wavには処理する権限のある短い会話録音を使います。diarizeは話者区間だけを返し、transcribeと--diar-modelの組み合わせはASR出力に話者情報を加えます。別々に試すと、文字の誤りと話者割り当ての誤りを切り分けやすくなります。ここでは公式CLIとモデル一覧を照合しており、全機材で時間を実測した例ではありません。
nemo-speech doctor
nemo-speech model list
nemo-speech pull nemotron-3-diarization
nemo-speech diarize meeting.wav --model nemotron-3-diarization
nemo-speech transcribe meeting.wav --model nemotron-3.5 --diar-model nemotron-3-diarization --json0.32秒と30.4秒は処理完了時間ではない
ストリーミングモデルは前後関係を判断するため、後続の音声を少し待ちます。公開値の0.32・0.64・1.04・30.4秒は、この入力バッファの長さです。1時間の録音が30.4秒で終わる、どの端末でも0.32秒で字幕が出る、という意味ではありません。計算、ASR、画面表示の時間がさらに加わります。
録音済みの会議なら、即時応答が必須とは限りません。まず長めの文脈を使う設定で結果を見て、ライブ表示が必要なときに遅延を減らします。NeMo PythonとC++の設定名をそのまま転用せず、使用中の実装のプリセットとヘルプに従ってください。
| 設定 | 入力バッファ | 検討する場面 |
|---|---|---|
| オフライン向け | 30.4 s | 録音済みファイルから試す |
| 低遅延 | 1.04 s | ライブ試験の比較基準 |
| さらに低遅延 | 0.64 s | 更新をさらに早めたい場合 |
| 推奨される最短遅延 | 0.32 s | 総遅延と精度を一緒に確認 |
NeMoモデルの推奨入力バッファ設定
オフライン向け
- 入力バッファ
- 30.4 s
- 検討する場面
- 録音済みファイルから試す
低遅延
- 入力バッファ
- 1.04 s
- 検討する場面
- ライブ試験の比較基準
さらに低遅延
- 入力バッファ
- 0.64 s
- 検討する場面
- 更新をさらに早めたい場合
推奨される最短遅延
- 入力バッファ
- 0.32 s
- 検討する場面
- 総遅延と精度を一緒に確認
公開性能から分かること、分からないこと
発表時の記事では、英語会話139件・約22時間のVoiceArena初期評価でDER 14.72%を報告しています。重複発話を評価し、境界の許容区間を設けない条件です。DERは発話の見逃し、誤検出、話者の混同を評価する指標で、単語の誤り率ではありません。「文字起こし精度85.28%」への読み替えや、韓国語会議への直接適用はできません。
15,113倍という処理量も目を引きますが、RTX PRO 5000でBF168・batch 32・torch.compileを使った条件です。個人PCでのファイル一本の遅延でも、ASRを含む時間でもありません。そのため、この値をサイトのMac miniやRTX 4090の速度体験には流用していません。機材比較では同じ音声、実行ソフト、バッチサイズ9を揃えます。

会議録に使うなら最後の確認も工程に入れる
最初は2〜5分程度の録音で発言順を手書きし、比較の基準を作ります。文字起こしと話者区間を並べ、初登場、割り込み、再登場を確認します。名前や担当者が重要な箇所は音声に戻り、区別できない重なりを一人の確定発言に変えないようにします。
機材選びも同じ順序です。モデルを読み込めるか、再生時間より速く終わるか、ASRを併用しても余裕があるかを確認します。話者ラベルだけが必要な仕事に、大型LLMを常時読み込む必要はありません。必要な工程だけを組み合わせれば、今のパソコンをそのまま使えるかもしれません。
ローカル実行でも録音への同意や保存範囲は別に決める必要があります。モデルはOpenMDW 1.1で配布され、アプリやSDKには別の条件があります。初回取得や更新にはインターネットが必要な場合があるため、外部送信を避ける環境では保存先や同期設定も確認してください。
用語の注釈
話者ダイアリゼーション — 録音を「誰がいつ話したか」の区間に分け、話者ごとにラベル付けする処理です。話者の実在の身元を特定することとは異なります。
本文に戻る自動音声認識 — 音声中の発話を認識してテキストに変換する技術です。認識結果は発話内容を示すもので、音響そのものを復元するものではありません。
本文に戻る大規模言語モデル — 大量のテキストデータで学習し、テキストを処理・生成する言語モデルです。機能や対応入力はモデルごとに異なります。
本文に戻るGPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻るCPU — コンピューターで汎用のプログラム命令を実行する中央処理装置です。AI処理ではGPUなど他のプロセッサーと役割を分けることがあります。
本文に戻るCUDA — NVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。
本文に戻るCLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。
本文に戻るBF16 — モデルの数値を保存・計算する16ビット浮動小数点形式です。利用可否はハードウェアと実行環境によります。
本文に戻るバッチサイズ — 1回の処理単位にまとめる入力またはリクエスト数です。大きくすると処理量とメモリ要件の両方が変わることがあります。
本文に戻る