😸

YoutubeをWhisperで文字起こしするツールを作ってみた

2023/03/26に公開

できたツール

使い方はREADMEを読んでください!
https://github.com/aozou99/youtube_whisper

作った理由

英語できないけど英語面接することになった

現在所属しているチームの採用活動に携わっているのですが、最近海外エンジニアの採用を始めました。
自分の英語スキルはTOEIC700点台で、Readingはなんとなくできるけど、それ以外が全然駄目です。
英語が得意なメンバーがいるので、ついつい頼ってしまうのですが、やはり英語できるようになりたい!

YoutubeにCode Interviewの動画があるやん

ただ、何をやれば英語面接できるようになるか考えてみたところ、YoutubeにCode InterviewやSystem Design InterviewなどのMock Interview動画が沢山あるじゃないですか!
幸い私のチームでもCode Interview/System Design Interviewを行っていたので、これらの動画を教材とすれば、頻出単語やフレーズなどを効率的にキャッチアップできそうです。

例えば下記の動画など、とても参考になりそうです!
https://www.youtube.com/watch?v=e_i2RETG0yo

Youtube + Language Reactorで良い感じになったが...

下記のプラグインを使うとYoutubeで良い感じに字幕や1センテンス毎に再生できるようになり、とても便利で学習効率が向上します!
https://chrome.google.com/webstore/detail/language-reactor/hoombieeljmmljlkjmnheibnpciblicm?hl=ja

こんな感じで全体の字幕が一覧できます!

ただ、いざ学習してみるとLanguage Reactorが認識している1センテンスが、とても中途半端な事に気づきました。
例えば、下記が1センテンスとして表示されますが

properties of a database system cool and you mentioned catastrophe so

実は3つのセンテンスが中途半端に混ざっています。
ピリオド(.)が無いので、パット見で全然分からないのが辛い...

A) Well, that was all about asset properties of a database system.
B) Cool. And you mentioned catastrophe.
B) So here, in my case, with DIA is no storming.

これは字幕の内容を翻訳したい時にとても不便でした。
私は翻訳にはChatGPTを使っているのですが、ChatGPTはセンテンスが完結している状態の方が遥かに翻訳の精度が高いです。
そのため中途半端な状態だと、こちらで前後の文章を繋ぎ合わせて整理してあげる必要があり、これがとても手間でした。

キレイに1センテンスで区切られてたら、翻訳作業が格段に楽になるぞ

後はこの課題だけをクリアできれば、気持ちよく学習を始めれそうです。
解決方法をググっていると音声ファイルから文字起こしをしてくれるAIがホットらしいです。
そのAIこそがWhisperでした。
https://openai.com/research/whisper

開発元は今飛ぶ鳥を落とす勢いのChatGPTを開発しているOpenAIです。
これは期待できるぞ!
多分良い感じにセンテンスを認識してくれそうな気がします。
ということで、WhisperでYoutubeを文字起こしをやってみるモチベーションが湧き上がったのです。

作成したツールで何が楽になったか

課題であった1センテンスを認識する精度が格段に高くなりました。
これでYoutubeを見ながら、このセンテンスの意味って何だ?と翻訳する時にコピペでサクッと終わるようになりました。

Language Reactor

hello everyone we are back with another round of duty mock interview series i am

youtube_whisper

Hello everyone, we are back with another round of Turing Mox interview series.
I am Joseph, techie at Turing and I'm from Montreal, Canada and at Turing.

Discussion