プログラミング経験0のただの文系大学生がAIを使って4-5万円相当の仕事を1250円で済ませた話
初めまして!
Xで主にスタートアップ関連や生成AI関連の事業・技術・動向を発信しているRICと申します。
こちらのnoteでは、一切のプログラミング経験のない文系大学生の僕が生成AIを使ってYoutubeの英語の動画を日本語に翻訳した字幕を付けるというタスクを、OpenAIのAPIを使用することで簡単に処理できた、という経験をチュートリアル形式でシンプルに説明しています。
なお、このnoteは単に翻訳字幕を簡単につけられてお金を節約できたヤッタァというメッセージではありません。
むしろ、ただの大学生が生成AIを使ってここまでの処理が出来るなら、それなりの専門性を持つ社会人ならば圧倒的な仕事の効率化や処理能力の向上が出来るだろう、そしてそのためのツールと機会を全人類に与えるという生成AIの驚異的な可能性、についてお伝えしたいというものです。
始めに自分のスペックを紹介すると、
・経済学部4年生
・プログラミング経験無し(APIの仕組みやPythonについて超基礎的な内容のみ理解)
・Xで3か月前から生成AIやスタートアップ関連の情報を発信し始めた(https://twitter.com/rice_vc)
・ChatGPT Plus (月額3000円)加入済み、毎日使っている
・中高とアメリカにいたため英語ネイティブレベル
というものです。
英語ネイティブということでリサーチなどで若干のアドバンテージはあるかもしれませんが、基本的にはただの文系大学生と認識してもらって結構です。
今回の字幕翻訳処理の全体的な流れとしては、
①Python環境を構築
②Open Interpreterをインストール
③動画から英語字幕を取得
④字幕を日本語に翻訳
⑤字幕を動画に付与
というプロセスになっています。
Xで発信されているSangminさん(https://twitter.com/gijigae)のこちらの投稿から発想を得て、自分でもやってみようと考えて試行錯誤するに至りました。
翻訳に使った動画はこちら。
OpenAIの最大の競合であるアンソロピック (https://twitter.com/AnthropicAI)のCEOダリオ・アモデイ氏がAIの拡大や今後訪れる未来について語った動画で、約20分超の動画です。
※ちなみに、初めてOpen Interpreterを使う経験だったのでそれなりに苦戦しました。ローカル環境設定や、OpenAI APIの設定も必要になりますが、以下のチュートリアルで説明しますのでご安心ください。
一般的に英語の動画字幕翻訳の相場は1分あたり2,000-3,000円、吹替翻訳でプラス10,000円であるようです。なので、上記の20分の英語動画のフル翻訳字幕という仕事は4-5万円くらいのレンジに入ると想定しています。
今回の試みは初めてで試行錯誤したため合計の作業時間は6,7時間くらいでしたが、一旦プロセスを理解してしまうと(うまくいけば)1,2時間で終わるタスクにはなってくるかと思います。
チュートリアル
①Python環境を構築(Windows)
まずはPythonを使える環境を作ります。こちらのProgateの記事がとても分かりやすいです。
https://www.python.org/ にアクセスし、最新版をダウンロードします。
以下の画面で、必ず"Add python.exe to PATH"にチェックボックスを入れるようにしましょう。
このままInstall Nowをクリックし、Setup was successful となれば完了です。
この状態でWindowsキー+Rをクリックし、"cmd"と入力してコマンドプロンプトを開きます。
黒い画面のコマンドプロンプトが起動するので、そのまま
python --version
と入力します。
以下のように、 Python 3.10.11など、バージョンが表示されればOKです。
②Open Interpreterをインストール
次はOpen Interpreter(以下,OI)をインストールします。OIはキリアン・ルーカス氏https://twitter.com/hellokillian が開発している、ローカル環境で実行できる対話型OSSです。OIを通して、Web上ではなく直接システム上で言語モデルを扱えるというものです。
インストールに関してはこちらの記事が分かりやすいです。
OIは処理において様々なPythonライブラリをインストールするので、本当はColabやvenvといった仮想環境(ライブラリ同士の混在によってエラーが起きないようシステム環境を分離する)上で起動するのが良いですが、僕はド素人だったため直接インストールしてしまいました。(←ダメ、ゼッタイ)
仮想環境の構築についてはこちらの記事が分かりやすいです。
まず初めにOIを使って作業をするフォルダを適当に名前を付けて作成します。
作成したら、フォルダの住所(ディレクトリ)をコピーします。
フォルダを右クリックして、"Copy as Path"を押します。
次にコマンドプロンプトを起動して、以下のコードを実行します。
python -m venv [仮想環境名] *←仮想環境名も適当に名付ける
次に、先ほどのディレクトリを用いて以下のコードを実行します。
[フォルダのディレクトリ]\[仮想環境名]\Scripts\activate
コマンド実行後、一番左側に(仮想環境名)が表示されればOKです。
次のステップで、OIのインストールに取り掛かります。
以下の記事が分かりやすいです。
先ほどの仮想環境の状態で、以下のコードを実行するとOIに必要なライブラリ等がダウンロードされます。
pip install open-interpreter
これが完了すれば、以下のコードを実行するとOIを起動できます。
interpreter
うまくいけば以下の画像のようにOIのガイドが出てきます。
デフォルトではLLMはGPT-4に設定されていますが、無料で使えるLlamaなども選択できます。
性能が良いため、以下ではGPT-4を使う方法で解説していきます。
GPT-4を使う場合、API Keyの取得が必要になってきます。
こちらはOpenAIのアカウントを作った後、こちらからアカウントに残高を追加することで利用できるようになります。
追加可能な残高は5-96$の範囲。
僕は試しに10$だけチャージしていました。
完了したら、https://platform.openai.com/account/api-keys から"Create new secret Key"を選び、作成されたKeyをコピーします。
"Interpreter"を初めて実行すると、このKeyを聞かれるのでそのままペーストします。
Keyを与えた後、一度コマンドプロンプトを消してInterpreter再起動します。
以下は試しに"Hello, how are you doing?"と打ってみた結果です。
うまくいくと通常のWeb版GPT-4のように回答してくれます。
問題なくLLMが作動すればOKです。
③動画から英語字幕を取得
やっと実際の字幕翻訳作業に取り掛かっていきます。
OIが凄いのは、最終的な目的をプロンプトとして与えるだけで、そこに至るまでのステップを分解して段階的に実行し、エラーが起きれば適宜別の方法を実行してくれるという点です。
例えば、僕が与えたプロンプトが「動画のURLを渡すから、そこから字幕をとってきてテキストファイルを作成してほしい」だとすると、下の画像のように返してきます。
Here's the plan: の部分を見ると、
1.動画をyoutube-dlを使ってダウンロード
2.動画をffmpegを使って音声ファイルに変換
3.音声をテキストに書き起こし
4.テキストを表示
というように各ステップに分解して説明してくれているのが分かります。
OIの初期設定では、生成したコードを実行する前に許可を求めます。慣れれば起動時に"interpreter -y" でバイパスできますが、僕は毎回許可を求めさせて逐一コードを確認しながら進めました。
事がうまく進めばOIがPCのどこかにテキストファイルを作成してくれますが、実際には何度もエラーにぶつかることは想定しておいてください。
僕の例だと、
・youtube-dlが使えなかった(別のライブラリ使用を提案してくれたため解決)
・音声ファイルに変換した.mp3が見つからないと主張する(ファイルの場所のpathを教えてあげて解決)
・OpenAI Whisper APIが使えないと主張する(そんなことはないよ、とプロンプトで教えて解決)
などと数々のエラーに直面しました。
最終的には、ダウンロード先のファイルを指定し、audio.txtの形でファイルを作成することができれば完了です。
作成されたファイルを開いて、実際に音声の書き起こしが入っているか確認しておきましょう。
④字幕を日本語に翻訳
次に、ファイルの中身の英語を日本語に翻訳する必要があります。
僕がOIに与えたプロンプトは以下です。
Your task is to translate the content of the file at <audio.txtのパス>.
このコードでOIがとった行動は以下。
①DeepLのAPIを使って翻訳を試みる
②DeepLのAPIを設定していなかったため、Google Translateを利用して翻訳
③ダウンロード先を間違える
④元のファイルを置き換えることで新たな翻訳済みのファイルを作成
このように、よくミスを起こします。
完全にOIの挙動を放置するのではなく、ある程度ユーザーが軌道修正しつつ様子を見るのがコツです。
翻訳しただけではただのテキストファイルなので、これを.srtファイル(動画字幕のための拡張子)に変換する作業が必要です。
与えたプロンプトは以下。
Your task is to convert <翻訳済みaudio.txtのパス> into a .srt file format.
OIの返答は以下。
.srtに変換する時の手順を記してくれます。
この例ではOIが字幕の分割タイミングを10秒ごとに設定していますが、例えばこれを好きな数字に変えて指示してもOK。
欲を言えば秒数ごとで切るのではなく、自然に文章が途切れるタイミングで字幕分割を行いたいですが、これはまた別の外部ソフトを使う必要があるため今回は使用しておりません。
.srtファイルへの変換が完了しましたら、実際に開いて確認してみましょう。上の画像のように、字幕を表示する期間のタイムスタンプと字幕がセットで並べられていたらOKです。
⑤字幕を動画に付与
最後のステップです。
今手元には最初にダウンロードした動画ファイルと、先ほど変換した.srtファイルがあると思います。
.srtファイルを動画ファイルに焼き付けるために、以下のプロンプトを与えました。
your task is to hardcode the previously created .srt file, to the video located at <ダウンロードした動画ファイルのパス>
予想通り何度かエラーに遭遇しましたが、最終的には字幕を焼き付けた動画ファイルを作成してくれました。
僕が最初に完成させた字幕付きの動画の最初の一分間がこちら。
こう見ると、字幕のサイズは合っていませんし字幕の表示時間も長すぎて動画内の音声とズレが生じており、決して完成度の高いものであるとは言えません。
しかし、このように一切の動画編集ソフトを使わずに半自動的に「英語の動画に日本語の字幕を付ける」という厄介で時間のかかるタスクをこなせてしまう、という事実に何より感動を覚えました。
ちなみに、結構な回数OIにプロンプトを飛ばしていたので、もしやAPIのチャージ全部使ってしまったんじゃないか……と心配で見に行きましたが、意外と耐えていました。
https://platform.openai.com/account/usage で使用分の料金を確認できるのですが、10$全てを使い切ることはなく、結局$8.37 = 1250円程度で済んでいました。
最後に
最終的な動画のクオリティについては.srtファイルではなく.assフォーマットでより綺麗な字幕にしたり、DeepLの翻訳を使い日本語を自然にしたり、外部ソフトを使い音声とのミスマッチを減らしたりと様々な方法が考えられますが、生成AIをローカル環境で扱うということの真髄は感じていただけたのではないかと思います。
また、OIは0と1で動くプログラミングコードではなく、次の単語を予測して文章を形成する大規模言語モデルを使っているため、たとえ同じプロンプトを与えても毎回毎回違った挙動をします。(※Temperatureの変更で無効化は可能ですが)
決して一筋縄ではいきません。
一回成功したからといえ、プロンプトを暗記して再入力するのではなく、具体的にOIが何をしているのかを辿って理解すればOIが行う処理の本質的な部分が見えてくるのではないかと思います。
他に、OIの設定ファイルに各段階の具体的な指示やAPIの使い方を与えることで挙動を安定させるということもできるそうです。
このnoteを見てくださっている方には、是非こういった様々なアプローチでOIを応用していただければと思います。
(面白い使い方がありましたら是非教えてください!DMお待ちしております)
詳細は以下(Open Interpreter 公式Githubページ)👇
最後までお読みいただきありがとうございました!
参考になりましたら、Xでのフォローや、こちらの投稿のリポストをしていただけると励みになります。
この記事が気に入ったらサポートをしてみませんか?