何かを学ぶなら、手を動かして実践しながら学ぶのがいい。なんとなく分かっていてもなかなか動き出すのが難しいんですよね。
だからこそというのか、本当に自分があったらいいと思えるサービスやプロダクトを作っていこうということで、この「〇〇への挑戦」を始めていこうと思います!
まずは私が動画制作もやっているということで動画制作自動化サービスから。
他の人も使えるぐらいになれば最高。って気持ちで制作していきます。(どういう気持ちやねん。)
今回はそのやることの紹介と、ここまでやってきたことの紹介。
動画制作を自動化するサービスとは?
ざっと作っていく(予定の)もののご紹介。
撮影した動画から自動で不要な部分のカット、テロップ作成、イメージ画像/動画の挿入まで行ってくれる
というのが実装したい機能ですね。これはやろうと思えば案外簡単にできる(フラグ)と思うので、もっと面白い機能はないかと模索しながら進めていく予定です。(あくまで予定)
要は
話した動画→文字起こし→ChatGPTで話し言葉部分を修正
→文字に対応する部分の音声と動画紐付けて自動でカット編集する→テロップ自動付加→イメージの追加
をやっていくイメージですね。
現時点で、ChatGPTで口語部分を修正するってところまではできていて、こんな感じです。
ただ、ここから文字に対応する部分の音声と動画紐付けて自動でカット編集する部分のイメージが全く湧かなくて、どうしようって感じ。
とりあえず、カットしてテロップ入れることはPythonで実装できて入るので、修正した文字から該当する箇所を動画内で見つけてくること。。。(これが一番難しいんだろうなぁ)
次の記事と動画で方向性を考えたい。
- テロップの自動生成の実験→DavinciとPremiereProで
- 他にも、Blenderとかmatplotlib, manimを使ってアニメーションの自動化を模索する。
- プロンプトだけで動画が編集できたらいいよね
あると便利な機能
あると面白いよなって機能で、少し深ぼってお話しします。
- 動画をwebサービス上で編集する機能→Pythonで
- プロンプトだけで編集できるような機能
- 文字に対応する部分の音声と動画紐付けて自動でカット編集する
話したいのはこの3つですね。
1.動画をwebサービス上で編集する機能→Pythonで
まずwebサービス上で編集する機能があればいいよなっていうのは、誰でも動画編集できないのはなぜなのか?って疑問から感じたことなんですよね。
その疑問に対する答えとして、動画編集するためのPCスペックが必要ってのとソフトを習得しなきゃいけないっていうのがあるんです。
じゃあクラウド上でできちゃえば誰でも動画編集できる時代が来るんじゃないかと。プロンプトで一括編集するならweb上での操作性の悪さも大したデメリットじゃないですし。
2.プロンプトだけで編集できるような機能
プロンプト(ChatGPTへの指示)だけで自動でカットすることに関しては先に述べた通りですが、じゃあ何ができるようにしたいのか?
基本的には動画の内容は文字の書き起こしから把握できると思うのですが、誰に向けてその情報を発信したいとか、どんな目的でその動画を用意しているのかによって、まとめ方とか生成されるイメージが変化するべきだと思うんですよね。
そんな部分をプロンプトで補いたいですね。こちらから質問をいくつか用意しておいてそれに応える形で動画の方向性を決めるということにすれば分かりやすいかな。
できるだけシンプルにしたいので、プロンプトと元動画だけ突っ込めばそれだけでいい感じの動画になるようにしたいですね。
3.文字に対応する部分の音声と動画紐付けて自動でカット編集する
自動化するには、自動で不要な部分をカットするプロセスが絶対に欠かせないわけですが、、、ここが一番難しい。
文字を書き起こしたとして、その文章が動画内の時間と紐づいていないんですよね。例えば、私が動画内で「動画編集には時間がかかる」って言ったとしてそれを①動画内でどこで言っていたかと②書き起こし文字のどこにあるのかが分かっても、②には時間のデータがないので、①の時間データがある動画と簡単には紐付けることができないと。。
今のところ思い浮かぶ解決策は、動画をそもそも小分けにカットして、そのそれぞれで書き起こし→話し言葉の修正→テロップ化するとかがあるのかもしれませんが。。これをやってもあまり上手くいくイメージができないんですよね。
少し考える時間をください。笑
GPTを使ったプログラミングの学習について思うこと
僕は初心者がGPTを使ってコーディングをするのは、良い影響が大きいと感じています。
というのもGPTを使って機能を実現していると、どんどんやりたいことが実現できるし、その分途中でつまづく回数も自然と増えるんですよね。
そして何よりやっていて楽しい。
プログラミングやり始めてすぐに挫折するという人こそChatGPTを生かして学習を進めるべきなんじゃないかと思います。
ただ、やはりただGPTを使って機能が実装できたからはい終わりじゃもちろんダメで、気をつけている部分もあります。
- 生成された内容を理解する努力をする
- 基本的なPythonなどの学習すべきと思ったことは1冊参考書を読みながら進める。
- よく分からないキーワードをちゃんと理解する
1.生成された内容を理解する努力をする
生成された内容はしっかり理解する努力はしてます。というかこれをできないならGPTを使うべきじゃないって自分に言い聞かせています。
ただ、ちゃんと読もうって気持ちを常に心の片隅に置いておくだけでも良いと思うんです。僕だって作業に没頭してたり、面倒臭いと思う時は、さらっと読んでコードをコピペしたりします。笑
でもやっぱりその内容を一回は目を通すべきだし、気になるならちゃんと理解して進もうという気持ちを常に思い出すようにしてます。
2.基本的なPythonなどの学習すべきと思ったことは1冊参考書を読みながら進める。
基本的に、僕は教科書が好きです。高校の時も学校で配られた一番基本的だって教科書は何回も読み返しました。
なぜなら、それが基本だって言える部分をちゃんと理解してないと、本当の意味で自分らしい解決策を絞り出せないと思うからです。
今回の場合でも、私はO'Reilly社から出されている入門Python3って本を読み進める時間をとっています。まぁ一日1時間程度ですが。
他にもDjangoの本、機械学習の仕組みの本などなど。めんどくさいけど、ちゃんと勉強するってのはやっぱり大事だと思います。
3.よく分からないキーワードをちゃんと理解する
これは1個目のものと同じような内容ですが、キーワードを簡単にでも理解すること、もしくはChatGPTに深ぼって聞いていくこと。これはできるだけやっていきたいですね。
知らない言葉が出てきたら、まずは調べてみる習慣をつけること。これも最初はめんどくさいけどやっぱり少しづつ、少しづつ「あ、調べなきゃ」って思える回数を増やしていって、習慣化していくのが大事だと思っています。
そこで出てきたキーワードをもとに、学習のネットワークを広げていく、そういうプロセスが自分らしい勉強(解決策)を引き出すと思うんです。
最後に
やっぱ大事なのはやってて楽しいって感覚じゃないかなと、本当に思います。
壁にぶつかって、ダメだと思いながらも、それでもやっぱ解決しないとなんか納得できない。
そんなことを考えられるから、ちゃんと理解できるようになるんだと思います。高校の時だって、分からない時は回答を見てましたしね。でもその回答を読んでも理解できない時があって、それでも理解してやる!!って気持ちでやるからこそ成長できたんですよね。
そんな気持ち最近忘れてましたが。笑
分からないなら多少は飛ばしても良いと思います。僕は自分自身にそんな厳しくなれないので。ただ理解しようって姿勢は忘れずに持つべきです。そうじゃないといつまで経っても複雑なChatGPT以上のコードが書けなくなってしまいます。
僕も頑張るので、皆さんも少しでも頑張ろうって気持ちになってくれたら嬉しい限りでございまする。