AI議事録自動生成 — 会議の要約と次アクション抽出
約5分で読めます
AI議事録自動生成 — 会議の要約と次アクション抽出
会議の録音データから、要約・決定事項・アクションアイテムを自動生成するパイプラインを構築する。
全体フロー
音声録音 → 文字起こし(Whisper) → 要約(Claude) → アクションアイテム抽出 → Markdown出力
Step 1: 音声の文字起こし
OpenAI Whisperを使って音声をテキスト化する。ローカル実行なら無料で利用できる。
import whisper
def transcribe(audio_path: str) -> str:
model = whisper.load_model("medium")
result = model.transcribe(audio_path, language="ja")
return result["text"]
Step 2: AIで要約とアクションアイテムを抽出
import anthropic
def generate_meeting_notes(transcript: str) -> str:
client = anthropic.Anthropic()
prompt = (
"以下の会議の文字起こしから議事録を生成せよ。\n\n"
"## 出力フォーマット\n"
"### 会議概要\n(3行以内の要約)\n\n"
"### 決定事項\n- (箇条書き)\n\n"
"### アクションアイテム\n- [ ] 担当者: タスク内容(期限)\n\n"
"### 議論のポイント\n- (重要な議論を要約)\n\n"
f"## 文字起こし\n{transcript}"
)
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
Step 3: Markdownファイルとして保存
from datetime import datetime
def save_notes(notes: str, meeting_title: str):
date = datetime.now().strftime("%Y-%m-%d")
filename = f"meetings/{date}_{meeting_title}.md"
with open(filename, "w", encoding="utf-8") as f:
f.write(f"# {meeting_title}\n日時: {date}\n\n{notes}")
return filename
プロンプト設計のコツ
- 出力フォーマットを厳密に指定する — 見出しレベルまで指示すると品質が安定する
- アクションアイテムには担当者と期限を含める — 「誰が」「いつまでに」がないと実行されない
- 発言者の区別 — Whisperのタイムスタンプ付きモードを使えば、話者分離の手がかりになる
処理時間の目安
| 会議の長さ | 文字起こし | 要約生成 | 合計 |
|---|---|---|---|
| 30分 | 約2分 | 約10秒 | 約2分 |
| 60分 | 約4分 | 約15秒 | 約4分 |
| 120分 | 約8分 | 約20秒 | 約8分 |
※ Whisper mediumモデル、GPU使用時の目安
運用のポイント
- 録音品質が最重要 — マイクが遠いと文字起こし精度が大幅に低下する
- 専門用語は事前に辞書登録 — Whisperの initial_prompt に専門用語を含めると認識精度が上がる
- 議事録テンプレートを統一 — チーム全体で同じフォーマットを使うと検索性が向上する
まとめ
Whisper + Claudeの組み合わせで、会議後5分以内に構造化された議事録が完成する。手動の議事録作成から解放され、会議中は議論に集中できる。
関連記事
A
Agentive 編集部
AIエージェントを実際に使い倒す個人開発者。サイト制作の自動化を実践しながら、その知見を発信しています。