Anchor:発作時に声を出せない状況を解消する
認知アクセシビリティ&オフライン救命設計
SWIFT STUDENT CHALLENGE 2026 & OPENAI BUILD WEEK · OFFLINE DETERMINISTIC EMERGENCY SYSTEM
異なる分野の知識をつなぎ、課題の本質を捉える
私の強みは、異なる分野の知識や視点をつなぎ、ユーザー課題に対する新しいプロダクトを考えられることです。
情報工学に加え、脳科学、認知心理学、哲学、マインドフルネスを幅広く学び、それぞれを個別の知識で終わらせず、「人はなぜそのように感じ、極限状態ではどのような環境なら無理なく行動できるのか」という人間の認知特性と行動原理からプロダクトを構想してきました。
この考えを形にしたのが、パニック発作時の支援を目的としたiOSアプリ「Anchor」です。本作は、Appleが主催する「Swift Student Challenge 2026」および「OpenAI Build Week」(Human Signalトラック)へ応募しました。
当事者ヒアリングによる大転換:「沈黙」の解消
当初は呼吸ガイダンスやバイオフィードバックなど多機能を構想していましたが、当事者へのヒアリングと認知負荷の分析から、方針を大きく変えました。
激しいパニック発作(Autonomic Storm)の最中、人間の前頭葉機能・ワーキングメモリは著しく低下し、「画面のテキストを読む」「ボタンを選んで押す」「アプリの階層を行き来する」こと自体が認知面で深刻な害(Cognitive Harm)になります。
当事者が直面する最大の恐怖は、発作の身体症状そのもの以上に、必要な助けを周囲に一切伝えられない“沈黙”でした。
「発作が起きてから頑張るのではなく、平時に未来の自分のために準備する。」
そこで、平常時に支援内容や連絡先を完全に整えておき、有事の瞬間はスマートフォンが本人に代わって支援内容を伝える設計に変更しました。1回の操作で画面全体が高コントラストな指示板(Shield)へと切り替わります。
設計原則:なぜ発作の最中に生成AIを使わないのか
現代のプロダクト開発では安易に「AIがその場で励ます」設計が選ばれがちです。しかし、人命やパニック発作が関わる重大な局面では、生成AIには3つの致命的な脆弱性が存在します。
ネットワーク遅延 (Latency)
1〜3秒のストリーミング遅延やスピナーの待機時間は、パニック下のユーザーに「動いていない」という強烈な不安と孤立感をさらに強めます。
非決定論性 (Non-Deterministic)
発作の最中にハルシネーションや不適切なニュアンス、長文の語りかけが生じるリスクは絶対に許容できません。100%内容が確定した言葉が必要です。
通信断 (Network Fragility)
地下鉄、飛行機、ビルの谷間、通信制限など、発作が起きやすい閉鎖空間ほど電波は不安定です。クラウド依存は救命設計になり得ません。
したがってAnchorでは、「AIは平時の準備(One-Minute Anchor)にのみ使い、有事は完全オフラインで決定論的(Deterministic)に実行する」という明確な境界を設けて設計しています。
心が落ち着いている平時に、AI(GPT-4o / gpt-4o-mini-tts)とともに「未来の自分を救う言葉」を生成して内容を確かめ、暗号化したキャッシュとして端末に保存します。発作が起きた瞬間は、生成AIもAPI通信も一切介さず、0ミリ秒でローカルキャッシュまたはiOS標準音声合成を実行する設計を徹底しました。
2つのリポジトリ:プロトタイプから堅牢なシステムへ
Anchor.swiftpm
• Playgrounds / Xcode両対応: Package.swift + AppleProductTypes による単一パッケージ設計。
• 操作の手間がない導線: iOSの Back Tap(背面ダブルタップ) や Action Button と連動。アプリアイコンを探す操作すら不要でShieldを展開。
• Air-GappedオフラインQR: QRコード内に外部リンクURLではなく、支援の指示文そのものを格納。地下鉄・機内モードでも通行人のカメラで即座に読取可能。
Anchor-BuildWeek
• VoiceProxy (Node.js): iOSクライアントからOpenAI APIキーを完全に隔離するセキュアプロキシ(契約テスト完備)。
• ShieldVoiceLibrary (CryptoKit + AVFoundation): 指示文からSHA256ハッシュキーを生成し、ローカル端末内キャッシュを自動管理。
• デュアル音声フォールバック: 事前生成されたOpenAI音声がある場合は即時再生。未生成・オフライン時はiOS標準の AVSpeechSynthesizer へ途切れなく切り替え。
平時準備と有事救命のデータフロー
1. 平時準備 [Calm Preparation // Online & Safe] User Setting ──> VoiceProxy (Node.js API Key Isolated) ──> OpenAI gpt-4o-mini-tts │ (Audio Stream) CryptoKit (SHA256 Key) ──> Local FileManager Cache <─────────────┘ 2. 有事起動 [Crisis Trigger // Zero Cognitive Friction] Back Tap / Action Button / 1-Tap │ ▼ ShieldView Activated (0ms Latency) ├── 画面全体を使った高コントラストUI (遠目3mから介助者が一目で把握可能) ├── Air-Gapped Offline QR (支援テキストを生データ内包 / 圏外100%動作) └── Audio Playback Engine: ├── [Hit] Local SHA256 Audio Cache ──> AVAudioPlayer (Instant) └── [Miss] Offline Fallback ─────────> Apple AVSpeechSynthesizer (Zero Net)
モダンSwift設計と徹底したアクセシビリティ
内部アーキテクチャには、iOS 17+の Observationフレームワーク(@Observable) と @MainActor を採用。不要なViewの再描画を完全に防ぎ、緊急時のバッテリー消費とCPU負荷を最小限に抑えています。
アクセシビリティについても、以下の要件を徹底しています。
- Dynamic Type対応: 端末の文字サイズ設定に完全連動し、拡大時もレイアウト崩れを起こさないFluid Layout。
- Reduce Motion対応: 視覚過敏や前庭機能障害を持つユーザーに配慮し、不要なアニメーションを排除してフェードに置き換え。
- VoiceOver意味論ツリー: 画面が見えない状態でも、支援シールドの内容とQRコードの役割が音声で直感的に理解できるセマンティックマークアップ。