はじめに
ChatGPTと文字起こしAIのWhisperを使った議事録作成に関するいくつかの記事を読みました。その中で、ChatGPTとWhisperが生成する議事録が実用的かどうか気になったため、それについて調査を行いました。
思いのほか、記事が長くなってしまったので、はじめに結論を言っておくと、人間レベルには及びませんが、想像以上に議事録の精度高くて驚きました。
参考記事1: https://gihyo.jp/article/2023/04/programming-with-chatgpt-02,
参考記事2: https://dev.classmethod.jp/articles/whisper-line-bot/
ChatGPTとは
言わずもがなですね。OpenAI社が開発した大規模言語モデルです。
Whisperとは
ChatGPTと同様、OpenAI社が開発した文字起こしAIです。議事録作成においては、ChatgptよりもWhisperの精度の方が重要な気がします。
公式ページ: https://openai.com/research/whisper
API料金: 音声データ1分あたり0.006ドル。
実験データ
今回は、Youtubeにアップされている動画を用いて、実験を行いました。用いた動画としては以下のような動画を用いました。
- 学生の模擬グループディスカッション面接動画(動画1、動画2、動画3)
1ディスカッション15分程度
単一の議題のディスカッションであり、また、ディスカッションの最後に結論をまとめる会話があるため、議事録作成の難易度は比較的易しめ。 - 国会会議動画(2021年4年6日総務委員会 動画リンク)
リンクの動画を質疑者ごとに分割
会議時間が長く、会議の中に複数の議題が含まれるため、グループディスカッションより難易度は高い。
実験方法
-
Youtube動画のダウンロード
参考: https://mekatana.com/download-youtube-with-python/ -
会議部分のトリミング
会議に関係のない部分の動画を削除した動画ファイルを作成。 -
動画ファイルを音声ファイルに変換
whisperには20MB制限があるため、一応、mp4ファイルに変換しました。必要ないかもしれません。 -
2, 3で作成した音声ファイルを分割
Whisper、ChatGPTともに入力制限があるため、音声ファイルを5分ごとのチャンクに区切りました。
参考: https://qiita.com/futurebone/items/b3723899235a977f5796 -
Whisper APIでチャンクごとに文字起こし
参考: https://note.com/npaka/n/nda64330358f8 -
ChatGPTで文字起こしテキストを議事録化*
*プロンプトの調整等の試行錯誤でAPI料金がかさみそうであったため、GUI上で議事録作成を行いました。
*文字起こしテキストは長文となるため、以下2つの方式で、テキストの分割投入を行いました。
*出力のバラツキも考慮するため、3回試行を行い、評価しました。-
「まとめてというまで作業しないでください」方式
ChatGPTにテキストを分割して入力することを理解してもらうようなプロンプトを用いて議事録作成を行います。
(参考: https://chatgpt-lab.com/n/n27192235310c)プロンプト概要
- 最初だけ入力するプロンプト
今から会議の文字起こしテキストを分割してお送りしますので、 この会議のサマリーをMarkdown形式で作成してください。サマリーは、以下のような形式で書いてください。 - 会議の目的 - 会議の内容 - 会議の結果 私のほうから「まとめてください」というまでは、作業を開始しないでください。 作業の代わりに「次の入力待ち」とだけ出力してください。 よろしいでしょうか。
- 分割された文字起こしテキストごと入力するプロンプト
${文字起こしテキスト} 上記のテキストは、全体のテキストの途中です。まだまとめないでください:
- 最後のチャンクに対するプロンプト
${文字起こしテキスト} 以上で会議の文字起こしテキストは終了です。まとめてください。 この会議のサマリーをMarkdown形式で作成してください。サマリーは、以下のような形式で書いてください。 - 会議の目的 - 会議の内容 - 会議の結果
- 最初だけ入力するプロンプト
-
「チャンクごと要約」方式
チャンクごとに要約を作成して、返ってきた複数の要約文を結合して、最終的な議事録を作成する方式になります。こちらの方が一般的な方法かと思います。プロンプト概要
- チャンクごとに要約する
出力
下記のテキストを要約文を作成してください。 ### ${文字起こしテキスト1} ###
${要約結果1}
- 要約文を結合して、最終的な議事録を作成
以下の会議要約文をMarkdown形式でまとめてください。サマリーは、以下のような形式で書いてください。 - 会議の目的 - 会議の内容 - 会議の結果 ### ${要約結果1} ${要約結果2} ・・・ ${要約結果n} ###
- チャンクごとに要約する
-
-
議事録評価
- 評価項目
- 正確性(内容に誤りはないか)
- 網羅性(議論の全体像を網羅しているか)
- 読みやすさ(議事録の構成や語句が適切か)
- 評価尺度
- ◎:非常に良い。修正の必要性が全くない。
- ⚪︎:良い。修正の余地はあるが、そのままで問題ない
- △:あまり良くない。修正が必要な項目が存在する。
- ×:良くない。使い物にならない。
*私の主観による評価になります。そちらを念頭に置いていただければと思います。
(議事録の出力結果及び動画リンクは添付しますので、中身が気になる方はご確認ください。) - 評価項目
モデル
今回は、GPT3.5を利用しました。
実験結果
1. グループディスカッション動画
結果
① 「まとめてというまで作業しないでください」方式
No. | 動画リンク | 会議時間 | 評価 | 備考 | 議事録リンク |
---|---|---|---|---|---|
1 | リンク | 15分 | 精度:◎ 網羅性:◎ 読みやすさ:◎ |
すごい |
結果1 結果2 結果3 |
2 | リンク | 20分 | 精度:△ 網羅性:◎ 読みやすさ:◎ |
結論・内容は問題ないが、議題の前提条件(企業したい学生にとってのいい企業) が抜けてしまっていた |
結果1 結果2 結果3 |
3 | リンク | 15分 | 精度:◎ 網羅性:◎ 読みやすさ:◎ |
議事録として十分に活用できるレベル |
結果1 結果2 結果3 |
② 「チャンクごと要約」方式
No. | 動画リンク | 会議時間 | 議事録評価 | 備考 | 議事録リンク |
---|---|---|---|---|---|
1 | リンク | 15分 | 精度:◎ 網羅性:◎ 読みやすさ:⚪︎ |
若干不自然なところはあるものの、議事録として十分に活用できるレベル |
結果1 結果2 結果3 |
2 | リンク | 20分 | 精度:△ 網羅性:◎ 読みやすさ:⚪︎ |
①と同様に議題の前提条件(企業したい学生にとってのいい企業) が抜けてしまっていた |
結果1 結果2 結果3 |
3 | リンク | 15分 | 精度:⚪︎ 網羅性:◎ 読みやすさ:◎ |
人名の修正が必要な箇所があったが、内容に問題ない。 |
結果1 結果2 結果3 |
所感
予想以上に精度が高い議事録が生成されて、驚きました。whisperの文字起こしも漢字の誤変換といった誤りが時折見られるものの、ChatGPTが良しなに省略や修正を行ってくれるのは素晴らしいです。しかし、内容が過度に省略されたり、whisperの誤った文字起こしに影響を受けることもあるため、人間による確認は必要だと思います。特に人名といった固有名詞はだいたい間違えます。また、プロンプトが大まかな指示であるため、出力にはばらつきが見られました。そのため、ChatGPTに対して具体的な議事録の例を提示したり、制約条件を課すなどして、出力を安定させる工夫が必要と感じました。
方式①と②を比較すると、方式②の議事録の方が、情報が要約によって削減されるためか、若干内容が簡略化されやすい傾向があるように感じました。
2. 国会会議動画
結果
① 「まとめてというまで作業しないでください」方式
No. | 動画リンク | 国会会議録検索システムリンク | 会議時間 | 議事録評価 | 備考 | 議事録リンク |
---|---|---|---|---|---|---|
1 | リンク | リンク | 20分 | 精度:⚪︎ 網羅性:◎ 読みやすさ:◎ |
人名や党名の修正は必要だが、会議の要点を把握する分には使える |
結果1 結果2 結果3 |
2 | リンク | リンク | 40分 | 精度:⚪︎ 網羅性:× 読みやすさ:⚪︎ |
後半の議題のみしかまとめられていなかった。(2/3回) |
結果1 結果2 結果3 |
3 | リンク | リンク | 40分 | 精度:⚪︎ 網羅性:× 読みやすさ:⚪︎ |
後半の議題のみしかまとめられていなかった。(3/3回) |
結果1 結果2 結果3 |
4 | リンク | リンク | 50分 | 精度:⚪︎ 網羅性:× 読みやすさ:⚪︎ |
後半の議題のみしかまとめられていなかった。(3/3回) |
結果1 結果2 結果3 |
② 「チャンクごと要約」方式
No. | 動画リンク | 国会会議録検索システムリンク | 会議時間 | 議事録評価 | 備考 | 議事録リンク |
---|---|---|---|---|---|---|
1 | リンク | リンク | 20分 | 精度:△ 網羅性:◎ 読みやすさ:⚪︎ |
修正すべき部分は存在するが、会議の概要を掴むには十分使える。 |
結果1 結果2 結果3 |
2 | リンク | リンク | 40分 | 精度:△ 網羅性:◎ 読みやすさ:⚪︎ |
修正すべき部分は存在するが、会議の概要を掴むには十分使える。 |
結果1 結果2 結果3 |
3 | リンク | リンク | 40分 | 精度:△ 網羅性:◎ 読みやすさ:⚪︎ |
修正すべき部分は存在するが、会議の概要を掴むには十分使える。 |
結果1 結果2 結果3 |
4 | リンク | リンク | 50分 | 精度:△ 網羅性:◎ 読みやすさ:△ |
やや内容をざっくりまとめすぎている印象 |
結果1 結果2 結果3 |
所感
長時間の会議においては、方式①では記憶が続かず、議事録が後半部分のみで生成されてしまいました。この方式ですと、20分ぐらいが限界かもしれません。
一方で、方式②における議事録は、全体として会議の内容は網羅されており、会議の概要を把握するには十分だと感じました。ただ、氏名や会社名の修正、会議の目的と結論部分の微調整、詳細な説明の追記など、ある程度修正しないと、議事録として提出できるレベルにはならないなと思いました。また、会議の議題が複数にわたっていたためか、議事録の各項目の区切り方や会議の目的の文章について、違和感を覚えることが多かったです。ですので、議題が複数にわたる場合、それぞれの議題について動画を分割した方がいいかもしれません。
終わりに
今回、ChatGPTとWhisperの議事録作成能力を評価しました。人間と同等のレベルまで達しているわけではありませんが、ほぼ無労力でこれだけの質の議事録が生成できるのであれば、実用性は十分にあると感じました。
今後はプロンプトの改良やAPI、langchainなどのツールの活用を通じて、より高品質な議事録作成ツールを作ってみたいです。