LiveBrief
プロトタイプ対面の商談やヒアリング中の音声をリアルタイムに文字起こしし、会話中の判断を支えるカードを提示する個人向け対話支援アプリ
公開日

対象ユーザー
- 対面の技術商談やヒアリングで即答を求められる人
- 音声認識やLLMを使ったリアルタイム処理の設計に関心がある開発者
LiveBriefは、対面の商談やヒアリング中の音声をリアルタイムに文字起こしし、その瞬間にいちばん必要な支援を1枚のカードで提示するスマホ向けPWAです。開発者本人の個人利用を想定したMVPで、公開URLで稼働してはいますが、一般向けの提供は行っていません。
解決する課題
重要な対話の最中は、聞きながら理解し、メモを取り、次の回答を組み立てる作業が同時に進みます。技術商談や専門家ヒアリングではさらに、知らない用語と、即答を求められる質問がその場で降ってきます。
既存の文字起こしアプリや議事録AIが担うのは、主に終わった会話の記録と要約です。会話のさなかに「次に何を言うか、何を確認するか」を支える道具は、まだ薄いままでした。
そこでLiveBriefは、「記録するアプリ」ではなく「会話中の判断と応答を支えるアプリ」として設計しました。会議アプリへのボット参加は対象外で、対面と現場での利用だけを想定しています。
主な機能
セッション中は、日本語の音声をリアルタイムに文字起こしします。確定前の暫定文字列は薄く、確定した発話は濃く表示し、確定した発話の差分だけが分析へ回ります。分析からは、初出の専門用語の解説、論点と合意事項の要約更新、自分宛ての質問の検出、回答候補の生成が返ってきます。
ただし、これらを画面に同じ大きさで並べることはしません。縦持ちのスマホで会話しながら読み切れる量は多くないからです。その瞬間に最重要の1件だけを優先カードとして画面上部に出し、残りは下部のタブへ退避させます。優先順位の最上位は自分への質問と回答候補で、警告、初出用語、要約がそれに続きます。回答候補には15秒回答、慎重な回答、確認質問の3モードがあり、質問の検出から表示までは5秒以内を目標にしています。
回答候補の根拠には、事前の登録内容と会話そのものを使います。セッション前に会議の目的、自分の役割、資料、想定質問、言ってはいけない表現を事前コンテキストパックとして登録でき、回答カードには引用した根拠と確信度が添えられます。
それでも、回答候補は表示するだけです。自動で発話や送信をする経路は設けておらず、採用するかどうかの判断は常に利用者が行います。セッション中の操作も開始、一時停止、重要マークの3ボタンが中心で、記録に残したくない話題の前には、音声を取得も送信もしないプライベート区間を1タップで挟めます。
セッションを終えると、全文、3段階の要約、決定事項、担当と期限付きのToDo、未解決論点、用語集、フォローアップ文案などの成果物を構造化して生成する設計です。
開発の背景
文字起こしや議事録のAIは、すでに数多くあります。それでも、会話が終わってから助けてくれる道具と、会話の最中に助けてくれる道具は別物です。BenriWorksが欲しかったのは後者で、企画の原則には「最大の議事録」ではなく「次の行動を変える最小の支援」を作る、と置きました。議事録、ToDo、報告メールを終了後に別々に作り直す再作業を減らす成果物生成は、この原則を補う位置付けです。
技術と設計
Next.js 15とReact 19、TypeScriptを基盤に、UIをTailwind CSS v4で組んだPWAです。認証とデータベースはSupabaseで、全テーブルに行レベルのアクセス制御(RLS)を適用しています。
文字起こしにはGoogle CloudのSpeech-to-Text V2を使います。このAPIのストリーミング認識にはブラウザから直接接続できないため、あいだにCloud Run上の最小のリレー(WebSocketをgRPCへ中継するサーバ)を置きました。音声はこのリレーのメモリを通過するだけで、ディスクにもログにも書きません。ホスティングのVercelにもSupabaseにも音声は流れず、保存されるのは確定した文字列と構造化データだけです。生音声を既定で保存しないことが、プライバシー設計の出発点です。
分析にはGemini APIを使います。常時回る差分分析は軽量モデルが担い、上位モデルは利用者が回答候補を求めてタップしたときにだけ呼びます。1回の呼び出しで用語、要約差分、質問、決定事項をまとめて構造化出力させ、会話全文の再送はしません。
設計の手間の多くは、外部APIの都合の吸収に費やしました。Speech-to-Textのストリーミング認識は1ストリームあたり約5分が上限で、さらに無音が約10秒続くとストリームが強制切断されます。リレーは上限の手前で新しいストリームを先行して開き、古いストリームの最終結果を受け取ってから切り替えることで、発話の連番を途切れさせないままローテーションします。無音に対しては、切断される前にリレーが自らストリームを閉じ、次の音声で透過的に再開します。採用したモデルと日本語の組み合わせでは話者分離が使えないことも検証中に判明したため、未対応の設定を自動で無効化して文字起こしを続ける処理を入れました。
費用の制御はサーバ側で行います。セッションには予算上限を設定でき、超過するとサーバは分析APIを呼ばずにHTTP 429を返します。クライアントはこれを受けて分析だけを止め、文字起こしと保存は最後まで続けます。一度解説した用語はキャッシュし、同じ語では生成APIを呼び直しません。
現在の状態と既知の課題
現在の状態はプロトタイプです。冒頭に書いたとおり開発者本人の個人利用を想定したMVPで、一般向けの提供は予定していません。
Phase 0の検証記録では、約7分半の連続セッション1回の実測で、発話の終了から確定表示までの遅延はp50で649ms(目標は2秒以内)、途中1回のストリームローテーションをまたいだ発話連番の欠落は0件でした。同じセッションの費用は1時間換算で$1.19(目標は$1.25以内)です。
ただし、検証はまだ序盤です。重要語の認識率テスト、画面ロックや着信をまたぐ実機での検証、60分の連続セッション、概算費用と実請求の突合は未実施です。話者分離は前述のとおりMVPでは見送り、発話テキストからの宛先判定で代替しています。
分野・使用技術
関連記事

開発記事公開
音声認識ストリームの時間制限を、利用者に見せずに乗り越える
対話支援アプリLiveBriefで、クラウド音声認識のストリーム上限や無音切断を透過的なローテーションで吸収した実装を紹介します
#音声認識#個人開発関連アプリ: LiveBrief

ガイド公開
高圧受電とは — 低圧との違いとキュービクルの基本
建物の電気の受け方には低圧受電と高圧受電があります。契約電力による使い分け、キュービクルの役割と中身、保安管理の義務、CB形とPF-S形の違いまで、基本を一気に解説します
#高圧受電#キュービクル

ガイド公開
白地図をパワポ資料に使う方法 — 塗り分けから貼り付けまでと権利の注意点
営業資料や報告書に日本地図を載せるときの実務手順を解説します。地図画像の著作権・利用条件の確認ポイント、塗り分け地図の作り方、PowerPointで崩れない貼り付け方をまとめます
#白地図#資料作成

開発記事公開
LLMの読み取り結果を、検算を通ったときだけ信じる
構造化スタジオで、見積書の算術的な冗長性を利用し、決定論の検算を通過したデータだけを蓄積する設計を紹介します
#LLM活用#個人開発関連アプリ: 構造化スタジオ
関連アプリ

ベータ版
構造化スタジオ
見積書などの紙の業務文書をLLMで構造化し、算術検算を通過したデータだけを蓄積するWindowsデスクトップツール
業務効率化

公開中
wavelane
陸上無線技術士の学習に向けて、電波伝搬をスライダー操作と3D断面図で体験しながら計算練習できる学習ツール
資格対策

公開中
地デジエリアマップ
現在地から地デジ中継局への方位・距離・受信の目安と放送区域を地図で確認できる、アンテナ方向合わせ支援アプリ
生活ツール

ベータ版
地球地下シミュレータ
地震波の伝わり方という観測データから地球の内部構造を推論する過程を、ブラウザで体験できる教育用3Dシミュレータ。PREM近似の層構造表示、P波・S波の波線追跡とシャドウゾーン、マントル対流の計算を備えます
科学・教育3Dシミュレーション