本文へスキップコンテンツへスキップ
深掘り

話者ラベル付きの会議文字起こしを、自分のコンピューターでオフラインで

Foxl Notesは、音声をアップロードすることもサインインすることもなく、自分のコンピューター上で会議を文字起こしし、誰が何を話したかを「話者 1」「話者 2」と区別できます。Apple silicon搭載のMacと、x64のWindows PC・Linux PCで動きます。このガイドでは、セットアップの方法、テスト用の録音で話者ラベルがどのくらい正確だったか、そして1人の声を2人に分けるより、似た2つの声を1人にまとめるほうを選ぶ理由を、v0.9.2のスクリーンショットとともに紹介します。

Foxl Team5 分で読めます

Foxl Notes v0.9.2の「Transcript」タブに表示された二人の会議。そのコンピューター上で文字起こしされ、どの発言にも「SPEAKER 1」か「SPEAKER 2」の印と開始時刻が付いています。
このページの内容
2026年10月27日 に、リリース済みの実装と残っているテストで内容を確認しました。

Foxl Notesは、会議を自分のコンピューター上で文字起こしし、発言ごとに「話者 1」「話者 2」といったラベルを付けられます。「設定 > 録音」でオンデバイスエンジンを選び、会議を録音するか、その音声を取り込むだけです。文字起こしのために録音がアップロードされることはなく、料金もかからず、Foxlアカウントも要りません。Apple silicon搭載のMacと、x64のWindows PC・Linux PCで動作し、最初に一度だけ約1.3 GBのダウンロードが必要です。

話者分離(話者ダイアライゼーション)とは

話者分離は、録音を声ごとに分け、文字起こしの各行に誰が話していたかを示します。ただし、それが誰なのかを特定するわけではありません。音声のどの区間が同じ声のものかを割り出し、その声に番号を振ります。二人での通話なら、どちらかが何かに同意した行を見つけられるのは、この仕組みのおかげです。

クラウドの文字起こしサービスは、録音をアップロードしたあとに自社のサーバーでこれを行います。Notesは、録音があるそのコンピューター上で、文字を書き起こすのと同じエンジンの中でこれを行います。使うのはオープンなモデルです。pyannoteのsegmentation-3.0(MITライセンス)が話者の切り替わる位置を見つけ、3D-SpeakerのCAM++が各区間の声を比べます。どちらもsherpa-onnxで動くので、PyTorchをインストールする必要も、Hugging Faceのトークンを取得する必要もありません。

セットアップ

  1. Apple silicon搭載のMac、またはx64のWindows PCかLinux PCにFoxlをインストールします。
  2. 「設定 > 録音」を開きます。「文字起こしプロバイダー」が「自動」になっていれば、エンジンをインストールした時点でオンデバイスエンジンに切り替わります。ただし、そのコンピューターにAWSの認証情報がある場合は切り替わりません。「オンデバイス」を自分で選ぶこともできます。
  3. エンジンがまだインストールされていなければ、「エンジンをインストール」を選びます。約1.3 GBを一度だけダウンロードするもので、Notesの最初の画面にも同じボタンがあります。

準備ができると、設定画面にモデル名が表示され、音声がコンピューターの外に出ないことが示されます。Macでは、Qwen3-ASRの8ビット版がGPUで動きます。WindowsとLinuxでは、同じモデルがllama.cppで動きます。

「Recording」を開いたFoxlの設定。「Transcription Provider」は「Automatic」で、「On device (Apple Silicon, offline)」を使用中です。オンデバイスの文字起こしがこのMac上で話者を分け、音声はMacの外に出ないという説明文と、「Ready - mlx-community/Qwen3-ASR-0.6B-8bit running on this Mac」という表示があります。
オンデバイスエンジンをインストールした状態の「設定 > 録音」。ここではFoxlにサインインしていません。

会議を文字起こしする

会議が始まったら、Notesで「録音を開始」を押します。手元にある録音なら「録音または文字起こしを取り込む」を使います。Notesはwav、mp3、m4a、mp4など、さまざまな音声ファイルや動画ファイルを受け付け、ファイルを取り込むとすぐに文字起こしを始めます。「文字起こし」タブには、発言ごとに話者と開始時刻が並びます。

取り込んだ32秒の会議の「Transcript」タブ。「SPEAKER 1」と「SPEAKER 2」が交互に話す6つの発言が0:00、0:06、0:11、0:16、0:21、0:26に並び、ストアフロントの公開、月曜締め切りの料金表、火曜日に行うモバイルレイアウトのテスト、公開のお知らせメールについて話し合っています。
二人での会議を取り込み、そのコンピューター上で文字起こしと声ごとの分離を行ったところ。

ラベルは番号です。クリックすると、その話者に名前を付けられます。

ラベルはどのくらい正確か

私たちが用意した10本の合成会話の評価セットでは、エンジンは平均で音声の99.09%を正しい話者に割り当てました。各会話には2人か3人の合成音声が登場します。声は実在の人どうし以上には似ないように選んであり、正解が正確にわかっています。つまりこの数字はテストの結果であって、あなたの会議室での精度を予測するものではありません。14本の評価用ファイル(うち4本は実際に録音した会話)では、毎回正しい人数の話者を見つけました。同じ性別の英語の声2つが発言の間を空けずに話した場合は、93.3%が正解でした。上のスクリーンショットの会議も2つの合成音声によるもので、6つの発言すべてが正しい話者になりました。

2つの声がとても似ている場合、エンジンは1人を2人に分けるよりも、2人を1人として扱うほうを選びます。議事録では、発言者がはっきりしない行よりも、別の人の発言として記録された行のほうが害が大きいからです。このガイドを作る途中で、実際にこれに出くわしました。ある合成音声と、同じ声のピッチを下げたものとの会議は、1人の話者として返ってきました。

制限事項

  • 名前はわかりません。話者の名前は、文字起こしの中で自分で変更します。
  • Intel搭載のMac向けと、arm64のLinux向けのオンデバイスエンジンはありません。
  • 要約は書きません。要約には、自分で接続したモデルか、Foxlのオンデバイス要約モデル(別途ダウンロードが必要)のどちらかが必要です。

音声の行き先

文字起こしのあいだ、音声はコンピューターの中にとどまります。オンデバイスエンジンを選ぶと、設定画面には文字起こしがこのコンピューター上で行われ、料金はかからないと表示され、話者分離も同じローカルのプロセスの中で動きます。何もアップロードしないので、インターネットに接続していなくても使えます。そのあとの作業、たとえばクラウドのモデルに要約を頼むといったことは、そのために選んだプロバイダーを通ります。

参考資料

  1. Foxlドキュメント: 録音ドキュメント
  2. Foxlドキュメント: Notesのクレジットとプライバシードキュメント
  3. pyannote segmentation-3.0参考
  4. sherpa-onnxの話者セグメンテーションモデル参考
  5. 3D-Speaker(CAM++)参考
  6. Qwen3-ASR 0.6B(8ビットMLX版)参考
  7. Foxlをダウンロード参考