Google Workspaceを活用して会議の生産性を高める - OpenAIとClaudeで議事録を自動生成!
はじめに
会議は企業活動に欠かせないものですが、議事録作成に多くの時間と労力を費やしていませんか? 会議に集中しながらメモを取るのは至難の業ですし、司会を務めるとなるとなおさらです。不正確な議事録では、会議の本来の目的を達成できません。
そこで今回は、Google Workspaceを採用している企業向けに、AIを活用して簡単に議事録を作成する方法をご紹介します。この方法を使えば、会議の生産性を大幅に向上させることができるでしょう。
課題背景
従来、議事録作成は担当者が手作業で行うことが一般的でした。会議の内容を正確に記録するには、相当な集中力と記憶力が必要です。特に司会を務める場合、議事進行に気を取られて十分なメモが取れず、結果として不正確な議事録になってしまうこともありました。
これでは、せっかく時間をかけて会議を開いても、その内容が正しく共有されず、生産性の向上には繋がりません。会議の目的を達成するには、正確で詳細な議事録が不可欠なのです。
使用技術
そこで、私たちはAIの力を借りることにしました。具体的には、OpenAIのWhisperとAnthropicのClaude 3(opus)というモデルを使って、会議の録音から自動的に議事録を生成するシステムを開発したのです。
まず、Google Meetの録画機能を使って会議の模様を記録します。次に、その録画ファイルをWhisperに渡して文字起こしを行います。Whisperは音声認識に特化したAIモデルで、高い精度で話者の発言をテキストに変換してくれます。
そして、文字起こしされたテキストデータをClaude 3に渡します。Claude 3は自然言語処理に長けたAIモデルで、与えられたテキストを分析して要約してくれます。つまり、議事録の自動生成を行ってくれるわけです。
最後に、Claude 3が生成した議事録をGoogle Docsの新規ドキュメントに自動的に書き込み、関係者にメール通知を送信。これで、正確かつ詳細な議事録が簡単に作成・共有できるようになりました。
プログラムの解説
このプログラムは、Google Colabで実行することを前提としています。以下に、主要な処理をコードブロックごとに解説します。
Google Colabへのリンク
APIキーの設定
openai.api_key = userdata.get('OPENAI_API_KEY')
anthropic_api_key = userdata.get('ANTHROPIC_API_KEY')
Anthropic_client = anthropic.Anthropic(api_key=anthropic_api_key)
OpenAIとAnthropicのAPIキーを設定しています。これらのキーは、Google Colabのユーザーデータから取得します。実行前に、各自のAPIキーを設定する必要があります。
Google Driveのマウント
drive.mount('/content/drive')
Google Driveをマウントすることで、Colabから録画ファイルにアクセスできるようになります。実行者は共有ドライブへのアクセス権が必要です。
音声ファイルの準備
original_file = pathlib.Path(moto_video_file_mp4)
audio_file = pathlib.Path("./audio").with_suffix(original_file.suffix)
subprocess.run(["ffmpeg", "-i", str(original_file), "-codec:a", "copy", "-vn", str(audio_file)])
録画ファイルから音声部分を抽出し、必要に応じて圧縮します。ffmpegを使用して、音声ファイルを作成しています。
Whisperによる文字起こし
with open(video_file, "rb") as audio_file:
openai_client = OpenAI(api_key = userdata.get('OPENAI_API_KEY'))
transcript = openai_client.audio.transcriptions.create(
file=audio_file,
model="whisper-1",
response_format="text",
language="ja"
)
OpenAIのWhisperモデルを使用して、音声ファイルから文字起こしを行います。言語は日本語に設定しています。
Claude 3による議事録生成
def generate_minutes(transcript_content):
prompt = f"""
以下は議事録の文字起こしです。この内容を要約し、議事録としてまとめてください:
文字起こしコンテンツ: {transcript_content}
議事録は以下の形式で出力してください:
1. 会議の日時と参加者
2. 議題
3. 各議題の内容と決定事項
4. 次回会議の日程と議題
"""
message = Anthropic_client.messages.create(
model="claude-3-opus-20240229",
max_tokens=2000,
temperature=0.0,
system="You are a meeting minutes generator.",
messages=[
{"role": "user", "content": prompt}
]
)
return message.content[0].text
generated_minutes_text = generate_minutes(transcript)
文字起こしされたテキストをClaude 3に渡し、議事録を生成します。generate_minutes関数内でAnthropicのAPIを呼び出しています。
このプロンプトの部分をチューニングしてより詳細な議事録を作成することができます。例としては、Google カレンダーのAPIなどと連携することが考えられます。
Google Docsへの書き込みとメール通知
service = build('docs', 'v1', credentials=creds)
document = service.documents().create(body={'title': title}).execute()
insert_text_to_docs(generated_minutes_text, document_id)
Google Docs APIを使用して、新しいドキュメントを作成し、生成された議事録を書き込みます。そして、関係者にメール通知を送信します。
# APIエンドポイント
url = "https://script.google.com/macros/s/AKfycbzu1kLOthY_MsPjNnDfQ7j8qusolL15oxAJwbKVLKe8VF_vN0YObNSOOPndevMXtdBKWQ/exec"
# クエリパラメータ
params = {
'recipient': f"sky.send.email@gmail.com,{userinfo['email']}",
'subject': f'ドキュメントが作成されました:{title}',
'htmlBody': html_content
}
# GETリクエストを実行
response = requests.get(url, params=params)
ここのAPIのエンドポイントはsky.send.emailのアカウントのGASでGmailを送信するように設定してます。
内部のGASについては別記事で書きます。
実行方法
プログラムを実行するには、以下の手順が必要です。
Google Colabでこのノートブックを開きます。
OpenAIとAnthropicのAPIキーを取得し、ノートブックの指定された場所に設定します。
必要に応じて、その他の設定(録画ファイルのパス、メール通知の宛先など)を変更します。
動画ファイルのパスは/MyDrive/Meet Recordings/の配下に置く必要があります(Meet録画だと自動的にここになります)
ノートブックを上から順に実行します。
以上が、AIを活用した議事録作成プログラムの解説です。ぜひ、実際にColabでプログラムを実行してみてください。会議の生産性向上に役立つはずです。
まとめ
Google Workspaceと最新のAI技術を組み合わせることで、これまで手作業で行っていた議事録作成を自動化することができました。この方法なら、会議に集中しながらも正確な議事録を作成できます。
司会者は議事進行に専念でき、参加者は発言内容の記録を気にする必要がありません。会議終了後、自動生成された議事録がメールで届くので、決定事項の確認もスムーズです。まさに、会議の生産性を飛躍的に高めるソリューションと言えるでしょう。
会議は企業活動に欠かせない重要なコミュニケーションの場です。Google Workspaceを採用しているなら、ぜひこの方法を試してみてください。会議の質を高め、業務の効率化を図ることができるはずです。
Discussion