MTGの映像・音声データからAIで要約を生成する

ZoomなどによるオンラインMTGや、顧客先での打ち合わせを録音して後から聞き返し、内容をまとめる作業は、非常に手間のかかるものです。
これをAIで効率化できないか――今回のテーマは、その解決方法についてです。
なお、もしあなたがフリーランスで、YouTubeに動画をアップロードできる環境をお持ちであれば、動画から自動生成された字幕をChatGPTに渡して要約させるだけで済みます。その場合は、ここから先の説明は必要ないかもしれません。
今回は、このような面倒な作業を自動化する方法をご紹介します。
考え方
まず、MTGの音声データをテキスト化する必要があります。
YouTubeでも字幕生成は可能ですが、YouTube APIで動画をアップロードするとトークン消費が多く、実用的ではありません。
そこで今回は、Vimeoの有料プランを利用することにします。
VimeoはAPIを使った動画のアップロードと字幕生成の両方に対応しています。
音声データの扱いと動画の圧縮について
mp3やm4aなどの音声データは、そのままではアップロードできません。そのため、動画に変換する必要があります。ここで使用するのが FFmpeg です。サーバーに配置したFFmpegを使い、音声データを真っ黒背景のmp4動画に変換します。
また、Vimeoには容量制限があります。
そのため、動画データも FFmpeg を使って極力小さなサイズに変換し、軽量化します。
音声さえ正しく認識できれば、動画の画質や映像の乱れは問題ありません。
FFmpegは、任意のディレクトリに設置するだけで使用可能です。
AWSやWindows環境でもテスト済みです。
今回はPHPフレームワーク内で処理を作成しましたので、以下にPHPの参考ソースを示します。
解像度 64×36、フレームレート 10fps の低画質動画を作成する例です。
$cmd = "{設置パス}ffmpeg702/ffmpeg -y -f lavfi -t 7200 -i color=c=black:s=64x36:r=10 -i {mp3のパス} -c:v libx264 -preset ultrafast -crf 35 -c:a aac -b:a 128k -shortest -pix_fmt yuv420p {書き出し先のパス} > {ログ・ファイルのパス} 2>&1";
exec("{$cmd} &");
Geminiを使ったテキスト要約に関して
AI要約といえばChatGPTが有名ですが、お客様と検証した結果、プロンプトをより正確に理解し、期待した結果を得られるのはGeminiとなりました。
上と同様にPHPフレームワーク内で処理しましたので、PHPの参考ソースとなります。
$data = [
'contents' => [
[
'parts' => [
['text' => "{プロンプト}:\n\n{MTG字幕テキスト}"]
]
]
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={APIキー}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
APIバージョンとしては gemini-1.5-flash を指定していますが、より高度な要約が可能な gemini-1.5-pro も利用可能です。ただし、料金が非常に高い割に、実際の要約結果は gemini-1.5-flash と大きく変わりませんでした。
また、プロンプトの内容によって生成される結果は大きく異なるため、良好な要約結果を得るにはプロンプトの調整が必要です。
冒頭に書いた通り、MTG回数自体が少ないのであれば、Youtubeに動画をアップロードし、字幕をダウンロードしてブラウザ版のChatGPTやGeminiに投げるのが簡単です。無料で十分な結果が得られると思います。
今回はたくさんの営業さんが在籍している企業様の案件でしたので、PHPフレームワーク製の管理パネルから動画データ・音声データをアップロードするだけで、要約データや資料作成、次回MTG案内用のメール本文生成までを自動化するため、上述したような仕組みを考えました。
以上となります。




