ローカル音声認識・音声合成

ローカル会議録:文字起こし・タイムスタンプ・話者分離

会議録音を聞き直して発言者や決定事項を探すのは手間です。ローカル文字起こしは音声をテキストにし、時刻や話者ラベルを加えて確認を助けます。認識、話者分離1、要約は別段階です。機密会議に使う前に短い録音で各機能を確認しましょう。

実行条件と要点
  • ファイル全体の処理とライブ字幕は別の経路です。Nemotron 3.5はcache-aware streaming、Parakeet TDT v3は発話全体を処理します。
  • 話者分離は声を区切る処理で、音声だけから人名を特定する機能ではありません。
  • ローカルサービスは`127.0.0.1`にバインドします。`0.0.0.0`では他の端末から接続できることがあります。

会議録に必要な出力を決める

検索できる全文、発話時刻、話者区分、会議中の字幕のどれが必要かを決めます。ライブ字幕は録音を後から処理するより低遅延が必要です。必要な出力を整理してからストリーミングか一括処理か選びましょう。

人のいない会議室の丸テーブル中央のマイクとノートパソコン
全文かライブ字幕か必要な出力を先に決めます。

認識と話者分離を個別に確認

ASR2は発言をテキストにし、話者分離は誰がいつ話したかを区切ります。音声だけでは人名が分からないため、話者1・話者2を参加者に対応づけます。NeMo-Speech.cppのSortformer v2は最大4人に対応します。発話の重なりやマイク変更は人が確認します。

三色の音声トラックを表示するノートパソコンと色別のノート
自動ラベルを参加者に対応づける際は人が確認します。

ローカル実行環境とモデルを準備

NVIDIA NeMo-Speech.cppはApple SiliconのMetal、NVIDIA CUDA3CPU4経路を案内しています。公式コマンド`curl -fsSL https://github.com/NVIDIA/NeMo-Speech.cpp/raw/main/scripts/install.sh | sh`から導入できます。モデルは別途取得します。初回はネットが必要ですが、モデル取得後はオフラインで処理できます。

短い録音に時刻と話者を付ける

短いWAVを文字起こしし、音声と出力を見比べます。次にタイムスタンプと話者分離を有効にし、JSONや字幕が必要か確認します。NeMo CLI5には`nemo-speech transcribe meeting.wav --diarize --json`の流れがあります。人名や製品用語が多い場合は単語ヒントへの対応を調べましょう。

会議後に決定事項を確認する

長い録音では最初の出力と全体の完了時間を分けて測り、会議後に検索できる記録へ整理します。以下は確認形式の例で、実際の会議文字起こしやモデル測定ではありません。

発言例:「草案は金曜までに共有し、公開日は法務確認後に決めましょう。」→文字起こし案:「草案を金曜までに共有。

公開日は法務確認後に決定。」→人が確認する項目:草案担当者、金曜の日時、法務確認の担当者、公開日を確定する時点。

要約が断定的に見えても、録音と照合して承認するまでは確定記録にしないでください。

扉を閉めた夕方の作業部屋の録音機と文字起こし画面
最初の文字の遅延とファイル全体の完了時間を分けて記録します。

録音と文字起こしを慎重に扱う

まず利用してよい音声で試します。機密会議を扱う前に権限と保存ルールを確認しましょう。ローカルサーバーは`127.0.0.1`にバインドし、外部公開しません。決定事項、数字、人名は音声と照合して人が確認します。オフライン推論だけで保存済み文字起こしが安全になるわけではありません。

用語の注釈

  1. 話者ダイアリゼーション録音を「誰がいつ話したか」の区間に分け、話者ごとにラベル付けする処理です。話者の実在の身元を特定することとは異なります。

    本文に戻る
  2. 自動音声認識音声中の発話を認識してテキストに変換する技術です。認識結果は発話内容を示すもので、音響そのものを復元するものではありません。

    本文に戻る
  3. CUDANVIDIA GPUで汎用計算を行うソフトウェア基盤です。CUDA向けのプログラムが他のGPUでそのまま動くとは限りません。

    本文に戻る
  4. CPUコンピューターで汎用のプログラム命令を実行する中央処理装置です。AI処理ではGPUなど他のプロセッサーと役割を分けることがあります。

    本文に戻る
  5. CLICommand-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。

    本文に戻る