215 lines
7.0 KiB
Markdown
215 lines
7.0 KiB
Markdown
# リアルタイム議事録システム
|
||
|
||
会議音声をリアルタイムで文字起こしし、タスクを自動抽出するツールです。
|
||
|
||
## 何ができるか
|
||
|
||
マイクで拾った会議の音声を、裏側でリアルタイムに文字起こしします。さらに 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 ではマイクの挙動が異なる場合があります。
|