暗い macOS ワークスペースで、2つのローカル音声チャンネルが話者別の会議メモになる様子。

Meeting Transcriber:macOSで完結するローカル会議メモ

Meeting Transcriberは会議を録音し、話者を分離し、Mac上でMarkdownの会議メモに変換します。音声処理はローカルで行え、最終的なプロトコル生成にはClaude、Ollama、LM Studioなどを明示的に選べます。

要点
  • 対応する会議を検出し、アプリ音声とマイク入力を録音したうえで、Mac上で文字起こしと話者分離を実行します。
  • WhisperKitは99以上の言語をカバーし、Parakeet TDT v3は25のヨーロッパ言語向けの小さく高速な選択肢です。
  • 通常の導入は公式GitHub ReleaseのDMGで、Homebrewは任意の代替手段、ソースビルドは開発者向けです。
  • アプリコードはMITですが、文字起こしモデル、LLMプロバイダー、参加者への同意や通知は別途確認が必要です。

会議メモを作るために、最初に会話全体を第三者のダッシュボードへ送る必要はありません。Meeting Transcriberは、Macで通話を検出し、アプリ音声とマイクを別々に取り込み、ローカルで文字起こしと話者分離を行い、構造化されたMarkdownプロトコルを書き出します。

pasromによるSwift 6.2のmacOSメニューバーアプリで、現在のバージョンはv0.8.1です。通話にボットを参加させるブラウザレコーダーではなく、WhisperKitまたはParakeetで音声を認識し、最後のプロトコル生成にはClaude、Ollama、LM Studio、その他のOpenAI互換プロバイダーを選べます。最新のリリースノートはプロジェクトのリポジトリと公式サイトで確認できます。

できること

Meeting Transcriberはウィンドウタイトルを使ってTeams、Zoom、Webexを監視できます。Google Meetなどのブラウザ会議はオプトインで検出でき、確実な会議シグナルを持たない通話アプリではマイク入力検出をアプリごとに有効にできます。初期状態では無効なので、すべての音声アプリが録音開始のきっかけになるわけではありません。

録音は2つのチャンネルに分かれます。アプリ音声はAppleのCATapオーディオキャプチャで取り込み、同時にマイクも録音します。自分の声と相手の会話を分けて扱えるため、1本に混ぜた録音より話者ラベルを付けやすくなります。WAV、MP3、M4A、MP4、FLAC、AMR、3GP、OPUS、OGGなどの既存ファイルも同じパイプラインに渡せます。MKVとWebMにはffmpegが必要です。

文字起こし後はFluidAudioが端末上で話者ダイアライゼーションを行い、埋め込みを使って登録済みの声を照合できます。最後はプロトコル生成です。Claude Code CLI、OllamaやLM StudioなどのOpenAI互換エンドポイント、またはプロバイダーなしを選べます。出力されるMarkdownには要約、参加者、話題、決定事項、タスク、未解決の質問が含まれます。

インストール方法

pasromのMeeting Transcriberには公式App Store掲載がありません。最新のGitHub ReleaseからDMGをダウンロードし、マウントしてMeetingTranscriber.appをApplicationsへ移動します。アプリ音声キャプチャにはCATapDescriptionが必要なため、対応する最低条件はmacOS 14.2以降です。ローカルモデルを快適に使うならApple Siliconが適しています。

# Download the latest DMG:
open https://github.com/pasrom/meeting-transcriber/releases/latest

# Mount it and drag MeetingTranscriber.app to /Applications.

Homebrewを使う場合は、brew tap pasrom/meeting-transcriberの後にbrew install --cask meeting-transcriberを実行する方法もあります。v0.8.1のリリースページにはSHA256も掲載されています。初回起動時に音声モデルが自動でダウンロードされ、Hugging Faceのトークンは不要です。完全にローカルで運用するならOllamaまたはLM Studioを設定します。Claude Code CLIやOpenAI互換エンドポイントも選べますが、それぞれの処理方法とプライバシー条件は確認してください。

使い方

アプリを起動してメニューバーに常駐させます。対応する会議を検出すると、対象アプリと検出設定に従って録音を開始します。自分の音声にはマイク権限が必要で、ミュート検出や対応アプリの参加者読み取りにはアクセシビリティ権限を使います。画面収録は任意で、会議タイトルの取得精度とオーディオタップのフォールバックに使われますが、検出そのものには必須ではありません。

自動検出を待つ必要もありません。メニューから手動録音を開始でき、⌘Pでは既存の音声・動画を一括処理できます。Record-onlyモードを使うと、2チャンネル録音とメタデータのサイドカーだけを作り、文字起こしなどの後処理を別のマシンに任せられます。

Meeting detected
├─ app audio + microphone
├─ 16 kHz mono conversion
├─ WhisperKit / Parakeet
├─ speaker diarization
└─ Markdown protocol via Claude CLI / OpenAI-compatible / none

設定は、実際に使う項目ごとに分かれています。Generalでは監視するアプリとRecord-onlyを設定し、Audioではマイク、VAD、無音インジケーター、任意のエコーキャンセルを選びます。TranscribeではWhisperKitまたはParakeet、モデル、言語、語彙、表記ゆれの正規化を設定できます。Speakersでは話者分離、Outputではプロバイダー、議事録の言語、文字起こしの保存、出力先、カスタムプロンプトを管理します。

~/Library/Application Support/MeetingTranscriber/protocols/
├─ 20260225_1400_meeting.txt  # raw transcript, when enabled
└─ 20260225_1400_meeting.md   # structured protocol

スクリーンショット

リポジトリのヒーローアニメーションは、会議を取り込み、ローカルで文字起こしし、Markdownプロトコルへ変換する流れを一度に見せます。メニューバーアイコンも状態表示を兼ねています。波形はIdle、Recording、Transcribing、Diarizing、Protocolの各段階で動き、権限不足やRecord-onlyが有効な場合はバッジやドットで知らせます。

内部ではどう動くか

重要な設計は2つの入力を分けることです。CATapでアプリ音声を取り込み、マイクを別に録音してから、両方を16kHzモノラルへ変換して音声エンジンに渡します。ライブ録音とインポートファイルで同じ処理を使いながら、誰が話したかを考えられるだけの分離を保てます。

WhisperKitは99以上の言語を扱える広い選択肢で、モデルは約1GBです。Parakeet TDT v3は約50MBと小さく、25のヨーロッパ言語向けで、READMEでは約10倍高速と説明されています。その後はFluidAudioがCoreML/ANEで話者ダイアライゼーションを行い、通常モードと、同時発話に対応するSortformerを使い分けられます。

リポジトリとリリース

GitHubリポジトリにはSwiftアプリ、モデルと音声処理のコード、Automation APIやStream Deck操作のドキュメント、リリースワークフローがあります。HomebrewビルドではローカルAutomation APIも利用でき、メニューバーアプリをクラウドサービスにせず、ローカルスクリプトから音声ファイルを送り、話者分離済みの文字起こしを受け取れます。

今回確認したリリースはv0.8.1です。About設定タブ、異常終了や出力フォルダーのエラー表示、アクセシビリティ診断、話者名入力、署名とTCC関連の修正が含まれています。リポジトリにはCIでのユニットテスト、lint、解析に加え、Apple Silicon上で実モデルを使うE2Eと、実アプリに対する会議シミュレーターのテストも記載されています。

インストール前に確認すること

慎重に導入するなら、v0.8.1のリリースページから始め、公開されているSHA256とDMGを照合し、macOS 14.2以降であることとモデル用の空き容量を確認します。プロトコル生成をローカルにするかリモートにするかも先に決め、録音方法に必要な権限だけを許可してください。導入後はAdvanced設定で権限状態と診断を確認できます。

弱いところ

ローカル処理にも初回コストがあります。WhisperKitは約1GB、Parakeetはそれより小さいモデルを使い、文字起こしと話者分離の間はMacのCPU、GPU、Neural Engineを使用します。対象はmacOS 14.2以降で、古いMacや古いmacOSに対応したアプリ音声キャプチャが隠れているわけではありません。

自動検出は意図的に慎重で、権限にも左右されます。会議アプリのタイトルを検出できない場合や、アクセシビリティ権限がmacOS上で不整合になる場合があります。インポートしたファイルに音声トラックがないこともあります。スピーカーからのエコー混入は検出して知らせ、任意のキャンセルや重複除去も用意されていますが、騒がしい部屋から完璧な話者識別を得られるわけではありません。

「ローカルファースト」という言葉にも境界があります。録音、文字起こし、話者分離はMac内で完結でき、プロバイダーを無効にすることもできます。ただしClaude Code CLIやリモートのOpenAI互換エンドポイントを選ぶと、プロトコル生成のために文字起こしやプロンプトが外部へ送られる可能性があります。厳密にアップロードを避けたい会議では、OllamaやLM Studioを使い、出力設定を確認してください。

ライセンスでできること

Meeting TranscriberはMITライセンスです。商用アプリやクローズドソースアプリを含め、アプリコードを調査、変更、再利用できます。ただし再配布する相当部分には著作権表示とライセンス文を残す必要があります。変更を公開する義務はありません。

この許可がリポジトリのコード以外に自動で及ぶわけではありません。WhisperKit、FluidAudio、ダウンロードしたモデル、Claude Code、OpenAI互換プロバイダー、ffmpegにはそれぞれの条件があります。会議の録音についても、参加者と録音場所に適用されるルールに沿って通知や同意を確認してください。

インストールするべきか

すべての音声ファイルをSaaSのレコーダーへ渡さずに会議メモを作りたいなら、Meeting TranscriberはmacOS向けの焦点が絞られた選択肢です。まずは署名済みのGitHub Release DMGを使い、対応言語が広いWhisperKitと、小さく高速なParakeetを使い分けます。プライバシーが最優先ならプロトコル生成もローカルにすれば、録音からMarkdownまでを自分のMacで確認・設定できます。

プロジェクト情報

ライセンス
MIT
対応環境
macOS 14.2以降。ローカルモデルの性能を考えるとApple Siliconを推奨
実装言語
Swift 6.2、SwiftUI、CoreML/ANE
確認したバージョン
v0.8.1(2026-09-11)

インストール

# Download the latest DMG:
open https://github.com/pasrom/meeting-transcriber/releases/latest

# Mount it and drag MeetingTranscriber.app to /Applications.

ライセンスの概要

アプリコードはMITライセンスです。WhisperKit、FluidAudio、Claude Code、OpenAI互換プロバイダー、モデルパッケージなどにはそれぞれの条件が適用されます。