localVoiceRec

会議録音と議事録を、
Mac の中だけで。

約 1MB の DMG に、OS 標準の AEC、録音と同時進行の文字起こし、
オンデバイス要約まで。外部依存ゼロ、ネットワーク権限なし。

ダウンロード

macOS 26 Tahoe · Apple Silicon · Apple Intelligence 有効

メニューバーから localVoiceRec を開いたウィンドウ。録音開始 / 録音一覧を開く / 終了の 3 つの操作。

In the app

すべての工程を、ひとつのウィンドウで。

録音中からリアルタイムに伸びる文字起こし、チャンネル別の波形、停止後の構造化要約まで。 左右に並ぶレイアウトで切り替えなしに完結します。

録音一覧と詳細ウィンドウ。左に Meeting エントリ、右に Mic / System の波形と話者ごとの吹き出し、要約まで縦に並ぶ。

Privacy

送らない、ではなく、送れない

ネットワーク権限を持たないため、アプリは外部と通信する経路自体を持ちません。 AEC・文字起こし・要約は、いずれも OS 標準フレームワーク内で完結します。

ネットワーク権限ゼロ

App Sandbox を有効化したうえで、network.client / network.server をいずれも付与していません。OS レベルで通信できません。

オフラインで完結

文字起こしは macOS 26 の SpeechAnalyzer、要約は Foundation Models(オンデバイス)。録音から議事録までインターネットは不要です。

ボットを増やさないローカル録音

Zoom / Teams / Meet に外部ボットを参加させる代わりに、Mac 自身が再生・収音する音声を Core Audio process tap で取得します。録音データは端末から一切外に出ません。会議参加者への録音同意の取得は、利用者の責任で事前に行ってください。

Inside

アプリの中身を、覗いてみる。

codesign --display --entitlements - でアプリの権限を確認すると、 ネットワーク系のキーが存在しないことが分かります。

codesign output · 抜粋
[Key] com.apple.security.app-sandbox
  [Bool] true

[Key] com.apple.security.device.audio-input
  [Bool] true

[Key] com.apple.security.files.user-selected.read-write
  [Bool] true

# network.client / network.server — 存在しない

Pipeline

3 つの工程。
すべて端末内で。

  1. 01 — 収録

    マイクとシステム音声を別チャンネルで。

    自分の声は AVAudioEngine + AUVoiceProcessing IO で OS 標準の AEC・ノイズ抑制・自動ゲイン調整を適用。相手の声は Core Audio の process tap で取得し、System 側はロックフリーの SPSC リングバッファで受け取ります。話者分離は AI 推定ではなくチャンネルで確定するため、誤判定が起きません。

  2. 02 — 録音と同時進行の文字起こし

    同じ音声バッファを 3 経路に同時配信。

    1 つの PCM バッファを、(a) WAV ファイル書き込み、(b) 波形メーター、(c) SpeechAnalyzer への投入、に同期 fan-out します。バッファのコピーを増やさない 1-pass 構造のため、録音中から日本語・英語の文字起こしが伸びていき、停止と同時に確定済みテキストが揃います。

  3. 03 — 構造化要約

    議事録のかたちに。

    Foundation Models の @Generable で、概要・決定事項・アクションアイテム・未解決の問い・レビュー項目に整理します。

Export

議事録は、テキストになる。

詳細画面からエクスポートすれば、Slack や Notion にそのまま貼り付けられます。 Markdown とプレーンテキストの 2 形式に対応。

Meeting_20260527.md
# 2026-05-27 ロードマップ確認

- 日時: 2026-05-27 14:30 〜 15:30 (60 分)

## 概要

Q3 の優先順位を整理し、Phase 1 から Phase 2 への
受け渡しを確定した。

## 決定事項

- 録音・文字起こし・要約は完全オンデバイスで進める
- Phase 2 のテスト計画を翌週金曜までに策定

## アクションアイテム

- [ ] テスト計画ドラフト(担当: 佐藤、期限: 06-03)
- [ ] セキュリティレビュー依頼(担当: 未割当)

## 文字起こし

[00:00] mic: では、本日のアジェンダから...
[00:03] system: 了解しました。まず...

Requirements

動作環境とサイズ

OS
macOS 26 Tahoe 以降
CPU
Apple Silicon (M1 以降)
メモリ
8 GB 以上を推奨
Apple Intelligence
有効化が必要
ネットワーク
不要 (entitlement 未付与)
権限
マイク/システム音声録音
DMG サイズ
約 1.0 MB
.app サイズ
約 1.5 MB
外部依存
なし (OS 標準フレームワークのみ)
録音形式
Linear PCM (WAV)

Download

今すぐ、はじめる。

Developer ID 署名 + Notarization 済み。ダウンロード後の Gatekeeper 警告はありません。

version 0.1.0

build 1 · 2026-05-27

SHA-256 043d22cd7095ea0ff3d371b2010216b5f149d6238e2785b602ef298d849aa226 shasum -a 256 ~/Downloads/localVoiceRec-0.1.0.dmg
v0.1.0 — 初回リリース
・マイク + システム音声の 2 チャンネル録音 (Linear PCM / WAV)
・AUVoiceProcessing IO による AEC・ノイズ抑制・AGC
・録音と同時進行のオンデバイス文字起こし (SpeechAnalyzer)
・Foundation Models によるオンデバイス構造化要約
・録音一覧 / 詳細表示 / Markdown・テキストエクスポート
・スリープ / オーディオ HW 切替 / engine 構成変更を検知して安全停止
・ネットワーク権限ゼロ — App Sandbox + Developer ID 署名 + Notarization 済み

FAQ

よくある質問

本当に外部に送信していないのか?
App Sandbox を有効にしたうえで、com.apple.security.network.clientcom.apple.security.network.server のどちらも entitlement に 含めていません。OS がアプリのソケット作成を拒否します。 codesign --display --entitlements - で確認できます。
Apple Intelligence のモデルは外部通信しているのでは?
オンデバイスモデル(約 3B)が端末内で推論を行います。Private Cloud Compute への フォールバックは本アプリでは使いません(ネットワーク entitlement がないため、 技術的に経路がない)。
会議参加者への録音の告知や同意は必要?
必要です。本アプリは会議参加者への告知や同意取得を自動化する機能を持ちません。 録音前に、利用者ご自身で全参加者に録音する旨を伝え、明示的な同意を得てください。 所属組織のポリシー、サービス利用規約、各国・地域の法令(盗聴・通信秘密に関する規定など) に従う責任は利用者にあります。 無断録音は本アプリの想定する利用方法ではありません。
録音データはどこに保存される? ファイル形式は?
アプリのサンドボックス内、 ~/Library/Containers/com.example.localVoiceRec/ の下に保存されます。形式は Linear PCM (WAV) で、可逆・非圧縮。 アプリから個別/一括削除でき、削除時はファイル実体も同時に消去されます。
録音中のマイクへの回り込み (スピーカーから出た相手の声) は文字起こしを汚さない?
マイク収音は AVAudioEngine の入力ノードに対して setVoiceProcessingEnabled(true) を有効化し、macOS の AUVoiceProcessing IO を経由します。 OS 標準の AEC (エコーキャンセル)、ノイズ抑制、自動ゲイン調整がマイク側にかかるため、 ヘッドフォン未使用時の回り込みは大きく抑えられます。
録音が終わってから文字起こしを待つ必要がある?
ありません。1 つの音声バッファを「WAV への書き込み」「波形メーター」「SpeechAnalyzer への投入」に 同期 fan-out する 1-pass 構造のため、録音中からリアルタイムに文字起こしが伸びていきます。 停止と同時に確定済みのテキストが揃った状態になり、続けて要約を生成します。
ソースコードは公開されているか?
仕様書・ソース・テスト・配布手順は GitHub で公開しています。 Rikuto-des/localVoiceRec