YouTube動画は自動的に字幕を生成してくれますが、音声認識の問題もあってか、そのまま利用するには、日本語の品質に問題があります。長い動画字幕をChatGPTのOpenAI APIをつかって正しい日本語に直すPythonプログラムがつくれないか試してみました。
YouTubeの字幕作成機能の問題点
YouTubeには自動字幕作成機能があります。しかし、自動生成された字幕をテキストでダウンロードすると、改行位置がめちゃくちゃです。この字幕テキストを別目的で利用しようとする場合、日本語として正しい文章に整形する作業が大変です。例えば、経済産業省のYouTube動画【ALPS処理水って何?】から、字幕テキストをダウンロードすると以下のようになっています。
[音楽] アルプスとは様々な放射性物質を取り除い て浄化する設備の名称です 東京電力福島第一原子力発電所の建屋内に ある放射性物質を含む水についてアルプス によってトリチウム以外の放射性物質を 安全基準を満たすまで超過することができ ます 除去が難しいトリチウムについても安全 基準を十分に満たすようアルプス処理水を 処分する前に海水で大幅に薄めます 薄めた後のトリチウムの濃度は国の定めた 安全基準の40分の1 Whoを飲料水基準の約1/7 未満になります 安全基準を満たした上で 放出する送料も管理して処分するので 環境や人体への影響は考えられません 知っていただくことが 復興の応援になります みんなで知ろう考えようアルプス 処理水のこと |
ChatGPTを使えば、「以下の文章を正しい日本語になおしてください」とプロンプトで指示するだけで、以下のように文章の切れ目や句読点、日本語を正しい形に直してくれます。
アルプスというのは、様々な放射性物質を取り除いて浄化する施設の名称です。東京電力福島第一原子力発電所の建屋内にある、放射性物質を含む水について、アルプスによってトリチウム以外の放射性物質を安全基準を満たすまで除去することができます。除去が難しいトリチウムについても、安全基準を十分に満たすよう、アルプス処理水を処分する前に海水で大幅に薄めます。薄めた後のトリチウムの濃度は、国の定めた安全基準の40分の1以下になります。また、飲料水基準の約1/7未満にもなります。安全基準を満たした上で、放出する水量も管理して処分するため、環境や人体への影響は考えられません。これを知っていただくことは、復興の応援になります。みんなで知ろう、考えよう、アルプス処理水のこと。 |
しかし、何十分もある長い動画の場合には、テキスト文章も何千文字と長くなります。ChatGPTには字数制限があり、長い文章をいれると回答の品質が悪くなるという特性があります。その場合、文章を例えば1500文字以内ずつに分割して、1つ1つをChatGPTに問い合わせることで、出力される文章の品質を確保できます。しかし、同じ作業を何度も繰り返さなければならず、かなり面倒です。プロンプトで、「文章を分割してそれぞれに対して作業してください」と指示する方法もありますが、無料で利用可能なGPT-3では、回答の品質が安定しません。(きちんとした回答ができる場合と、できない場合がある)
この作業を ChatGPTのOpenAI APIを使ってプログラムで自動化できないか、というのが今回の記事のテーマです。
ChatGPT APIを利用できるようにする
まずは ChatGPT API の利用準備が必要です。ChatGPTのAPI機能をプログラミングで利用できるようにするには、OpenAIのサイトでサブスクリプションを有料で契約する必要があります。2024/6/8現在、OpenAIのサイトによると、ChatGPTの無料版と個人向け有料版との違いは以下のようになっています。
このページには、ChatGPT APIの利用については書かれていませんが、「What is ChatGPT Plus」というページには、真ん中のあたりにAPIを利用するための条件が書かれています。
このページによると、ChatGPT APIを利用するには
- 毎月 $20のサブスクリプション契約をすること
- それ以外にAPI Pricingに書かれている使用量ごとの料金を支払うこと
が必要です。API Pricingのページには、契約すると利用できるモデルの種類とそれぞれのモデルにおける従量課金の料金体系がかかれています。この分野も技術進歩が非常に速いため、この記事が見られるときには大きく変わっている可能性もありますが、2024/6/8時点では利用できるモデルの種類は以下のようになっています。
モデル名 | 用途 |
GPT-4o | 2024年5月に公開された最新モデル。複雑な指示をより正確に理解し処理できる |
GPT-3.5 Turbo | 2023年3月に公開された、より長いテキストを高速で処理できるモデル |
Embeddign models | Build advanced search, clustering, topic modeling, and classification functionality with our embeddings offering. |
Fine-tuning models | 自分の学習データをつかってファインチューニングされたモデルを作成可能 |
Assistants API | プログラム開発者にAI支援機能を提供 |
Image models | DALL·E を利用した画像生成が可能 |
Audio models | 音声をテキストに変換、テキストを英語に変換できる。 |
ChatGPT APIの契約方法については、多数の記事が公開されていますし、ChatGPT自体に問い合わせても、おおよその方法は教えてくれます。ここでは、そのあとのPython開発環境の説明もありますので、以下の記事をベースに話をすすめます。
Pythonで生成AIアプリを作ろう、APIの利用で画像生成に挑戦(出典:日経クロステック)
契約から利用までのステップは以下の5つです。
- ChatGPT のアカウント登録をする
- OpenAI のアカウント登録をする
- ChatGPT Plusのサブスクリプション契約($20/month)をする
- ChatGPT APIの従量課金のための最低料金($5)をチャージする
- API KeysのページでUser API Keyを発行する
API Keyの発行ページをみると、「Project API keys have replaced user API keys」という注意喚起の文章が書かれています。
これは、組織でChatGPT APIを利用する場合、プロジェクトごとに利用状況が管理できる 「Project API key」を用いるように推奨しているためです。User API keyはまだサポートされているようですので、個人利用の場合は User API Keyで発行して当面は問題ないかと思います。
もう一点注意事項があります。API Keyは、発行直後にサイトから離れてしまうと、 後日OpenAIの管理画面では確認できません。必ずどこかに書き留めておく必要があります。もし忘れてしまったら、古い API Keyを無効化して、新しいAPI Keyを発行します。
これでChatGPT API の利用準備が整いました。
余談ですが、ChatGPT Plusのサブスク契約をすると自由に利用できるようになるGPT-4oですが(無料では、GPT-4oの利用時間は限られる)、長い文章を理解し、正確に処理する性能はGPT-3.5に比べて格段に向上しています。実は、APIプログラミングをしなくても、GPT-4oに以下のプロンプトで以下のように指示するだけで、長い文章をほぼ完璧に正しい日本語に直してくれました。
添付のテキストの内容を正しい日本語に直します。以下の手順で作業をしてください。 1.テキストを 1500文字以内のかたまりに分割します。 2.それぞれの固まりをChatGPTの機能で正しい日本語になおしてください。 |
また、ChatGPT Plusの契約者には、Mac OS上で動作するデスクトップ版のChatGPTアプリの試用版も提供されています。
さて、次の記事では、初心者でもできるChatGPT APIのプログラミングについて説明します。
MATLABでもAnacondaのPythonでもサンプルプログラムがうまく動かず、丸一日悪戦苦闘しました。そんな中、以下の記事にかかれていた「Google Colaboratory」を活用することで、なんとかゴールにたどり着けました。
Pythonで生成AIアプリを作ろう、APIの利用で画像生成に挑戦(出典:日経クロステック)
次の記事では、Google Colabratoryを利用した、超初心者向けPythonプログラミングについて説明します。