# リアルタイム議事録システム 会議音声をリアルタイムで文字起こしし、タスクを自動抽出するツールです。 ## 何ができるか マイクで拾った会議の音声を、裏側でリアルタイムに文字起こしします。さらに 30 秒ごとに会話内容を AI が読み取り、「誰が/いつまでに/何をやるか」をタスクとして自動で抜き出します。 ``` マイク → 音声認識(Deepgram) → 文字起こしファイル(transcript.md) ↓ AI(Gemini) → タスク一覧ファイル(tasks.md) ``` 会議が終わると、手元に 2 つの Markdown ファイルが残ります。 - **transcript.md** — 会議の全文記録(タイムスタンプ付き) - **tasks.md** — 抽出されたタスクの一覧表(担当者・期限・根拠つき) ## 前提条件 以下のツールが必要です。 | ツール | バージョン | インストール方法 | |--------|-----------|-----------------| | Node.js | 20 以上 | https://nodejs.org/ | | pnpm | 最新 | `npm install -g pnpm` | | just | 最新 | `brew install just`(macOS) | ## セットアップ ### 1. API キーの取得 2つの API キーが必要です。 **Deepgram**(音声認識) 1. https://console.deepgram.com/ にアクセス 2. アカウントを作成(または既存アカウントでログイン) 3. 「API Keys」から新しいキーを作成 4. キーをコピー **Google AI**(タスク抽出) 1. https://aistudio.google.com/apikey にアクセス 2. Google アカウントでログイン 3. 「Create API key」でキーを作成 4. キーをコピー ### 2. .env ファイルの作成 ```bash cp .env.example .env ``` テキストエディタで `.env` を開き、取得した API キーを貼り付けてください。 ``` DEEPGRAM_API_KEY=ここにDeepgramのキーを貼り付け GOOGLE_GENERATIVE_AI_API_KEY=ここにGoogle AIのキーを貼り付け ``` ### 3. 会議設定(config.yaml) `config.yaml` を開いて、会議に合わせて編集します。設定しなくても動きますが、設定すると精度が上がります。 **参加者名** 会議の参加者名を登録すると、音声認識で名前が正しく聞き取られやすくなります。タスク抽出でも、担当者名の表記ミスを防げます。 ```yaml participants: - 田中 - 鈴木 - 佐藤 ``` **キーターム(専門用語)** 会議で出てくる専門用語・プロジェクト名・ブランド名を登録すると、音声認識の精度が上がります。20〜50 語が目安です。 ```yaml keyterms: - AI-Driven School - Deepgram - Linear - Slack ``` **置換ルール(任意)** 音声認識でよくある誤変換パターンを自動修正できます。キータームで解決しない場合の補助手段です。 ```yaml replacements: - find: 深グラム replace: Deepgram ``` ## 使い方 ### 立ち上げ方 1. Cursor でこのプロジェクトフォルダを開く 2. **Cmd + J** でターミナルを開く 3. 以下を入力して Enter ```bash just start ``` 初回は必要なパッケージの自動インストールが走るため、数十秒ほどかかります。ターミナルに起動完了のメッセージが出たら準備完了です。 4. ブラウザで http://localhost:5173 を開く > `just` はよく使うコマンドに名前を付けてまとめたものです。中身を知らなくても `just start` だけ覚えれば OK です。 > > ターミナル操作に不安がある場合は、Cursor の AI に「このプロジェクトを立ち上げて」と頼んでも大丈夫です。 ### 録音する 1. ブラウザで「**録音を開始**」ボタンを押す - 初回はマイクの使用許可を求められるので「許可」を選んでください 2. 録音中は画面に最新の文字起こしが表示されます。裏では 30 秒ごとにタスクも自動抽出されています 3. 会議が終わったら「**録音を停止**」ボタンを押す ### 停止 - ターミナルで **Ctrl+C** を押す - または別のターミナルで `just stop` を実行 ### 出力ファイル `output/` フォルダに、録音ごとに 2 つのファイルが生成されます。 ``` output/ meeting-2026-04-17T14-00-00-transcript.md meeting-2026-04-17T14-00-00-tasks.md ``` **transcript.md の例** ```markdown # 会議メモ 2026/04/17 14:00 ## 参加者 田中、鈴木、佐藤 --- **[14:00:05]** 今日は来週のリリースについて話しましょう **[14:00:12]** デザインの最終確認がまだ終わっていないんですが **[14:00:20]** 佐藤さん、明日までにレビューお願いできますか ``` **tasks.md の例** ```markdown # 抽出タスク | # | タスク | 担当 | 期限 | 根拠 | |---|--------|------|------|------| | 1 | デザインの最終確認レビュー | 佐藤 | 明日 | 佐藤さん、明日までにレビューお願いできますか | ``` 議事録としてチームに共有したり、タスクをスプレッドシートや Linear に転記して使えます。 ## トラブルシューティング ### 「.env ファイルが見つかりません」と表示される 上記の「.env ファイルの作成」の手順に従ってください。 ### 「APIキーが無効です」と表示される - API キーが正しくコピーされているか確認してください(前後にスペースが入っていないか) - Deepgram: https://console.deepgram.com/ でキーが有効か確認 - Google AI: https://aistudio.google.com/apikey でキーが有効か確認 ### 「ポート 3001 が使用中です」と表示される 前回のサーバーが残っている可能性があります。 ```bash just stop ``` を実行してから、再度 `just start` を試してください。 ### マイクが使えない / ブロックされている Chrome の場合: アドレスバーの鍵アイコン →「サイトの設定」→ マイク →「許可」に変更し、ページを再読み込みしてください。 ### 「サーバーとの接続に失敗しました」と表示される サーバーが起動していない可能性があります。ターミナルでエラーが出ていないか確認し、`just start` で再起動してください。 ### 文字起こしの精度が低い - `config.yaml` のキータームに、会議で出てくる専門用語を追加してください - マイクに近い位置で話すと精度が上がります - 複数人が同時に話すと認識精度が下がります ### タスクが抽出されない - 会話が短すぎると(2 文以下)タスクは抽出されません - Google AI の無料枠を超えると一時的にタスク抽出が停止します。しばらく待つか、API キーのプランを確認してください ### 推奨ブラウザ **Chrome** を推奨します。Safari や Firefox ではマイクの挙動が異なる場合があります。