realtime-minutes/README.md
2026-04-17 16:11:31 +09:00

215 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# リアルタイム議事録システム
会議音声をリアルタイムで文字起こしし、タスクを自動抽出するツールです。
## 何ができるか
マイクで拾った会議の音声を、裏側でリアルタイムに文字起こしします。さらに 30 秒ごとに会話内容を AI が読み取り、「誰が/いつまでに/何をやるか」をタスクとして自動で抜き出します。
```
マイク → 音声認識Deepgram → 文字起こしファイルtranscript.md
AIGemini → タスク一覧ファイル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 ではマイクの挙動が異なる場合があります。