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