OpenAIの音声認識Whisperを使って好きな洋画やアニメから英語教材を自作する

OpenAIのWhisperは、人間と同レベルの精度で音声認識ができると言われている、オープンソースのツールです。

公式サイト https://openai.com/blog/whisper

この記事では、Whisperのちょっと変わった使い方として、出力の字幕ファイルから得られる「いつ話し始めて、いつ話し終わったか？」のタイミングデータを利用して動画を切り貼りし、好きな動画から英語教材を自作する方法を紹介します。

## こんな動画教材が作れます

まず最初に、今回Whisperを使って作った、自分用の英語教材をご紹介します。『英語のハノン』のように、同じ英文をひたすら反復練習するための教材です。

<iframe width="560" height="315" src="https://www.youtube.com/embed/YMp0XN8_SfI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

> (C)大場つぐみ・小畑健/集英社・VAP・マッドハウス・NTV
> 『デスノート / DEATH NOTE コンプリート DVD-BOX』より引用

<iframe width="560" height="315" src="https://www.youtube.com/embed/YTBMEmOOXW8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

> (C)大場つぐみ・小畑健/集英社・VAP・マッドハウス・NTV
> 『デスノート / DEATH NOTE コンプリート DVD-BOX』より引用

## 認識精度の検証

教材として使える程度の認識精度が出せているかどうか、Netflixの『デスノート』の字幕データを利用して検証しました。認識モデルはbaseモデルを利用しました。

![スクリーンショット 2022-10-01 14.17.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/d9da1f7b-10ac-a6c9-3c61-391ecce4e7ba.png)
> (C)大場つぐみ・小畑健/集英社・VAP・マッドハウス・NTV
> 『デスノート / DEATH NOTE コンプリート DVD-BOX』より引用

この長さの英文で、本質的な誤認識は3箇所でした。問題なさそうです。

# 作成手順

単一のmp4ファイルをブラウザからアップロードして作成する、お試し用のシンプルな手順と、より本格的に利用するための、Google Driveのmp4ファイル（複数ファイル可能）から作成する方法の２つをご説明します。

## お試し用のシンプルな手順

1. 下記リンクからGoogle Colaboratoryを開き、Googleアカウントでログインします

    https://colab.research.google.com/gist/dai-pop/7ed153eb33bbecd3f3389088a270fddd/whisper_english.ipynb

    ![スクリーンショット 2022-10-01 11.02.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/bd7b980d-5d43-17eb-da3a-7510ba157769.png)

1. ランタイム → ランタイムのタイプを変更
 ![スクリーンショット 2022-10-01 11.25.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/ceadeea1-1b1c-bc28-1849-dd8a11bf75bc.png)

1. ハードウェアアクセラレータをGPUに設定します
 ![スクリーンショット 2022-10-01 11.24.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/19856d7a-a4c0-8914-2f88-3e75d804200c.png)

1. ソースコードを編集して練習したい単語を設定します
 ![スクリーンショット 2022-10-01 10.10.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/fe0c298e-c834-cea4-c442-a7f769d89172.png)

  
1. 左上の再生ボタンを押します
 ![スクリーンショット 2022-10-01 10.13.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/3ce0db50-26d0-f114-a729-a6087fa4eb28.png)


1. 「このまま実行」を押します
 ![スクリーンショット 2022-10-01 11.13.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/ed6935ac-0050-9258-ecb1-9466a6e2d048.png)




1. 「ファイルを選択」から、英語の会話が入ったmp4動画ファイルをアップロードします
![スクリーンショット 2022-10-01 11.14.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/3bb7f0b0-9503-6a08-1fd1-108b53506c79.png)

1. しばらく待つと動画ができあがります。動画の長さによっては時間がかかります。この例では13分15秒かかりました。

![スクリーンショット 2022-10-01 122107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779020/94a5ba23-572d-e6b9-f2b5-2c39d75e3466.png)


## 本格利用のためのGoogle Driveを使った方法

1. Google Driveの特定フォルダにmp4動画を置きます。サンプルでは「movie」に置いたと仮定しています。
1. 下記サンプルのURLを開きます
 https://colab.research.google.com/gist/dai-pop/41664d7b2c7ec110e3253d8e0c40ca44/whisper_english_gdrive.ipynb
1. 各セルを上から準場に実行していきます
1. Google Driveに教材動画が出来上がります

## 利用したツール

- 音声認識：OpenAI Whisper https://github.com/openai/whisper
- 動画の切り貼り：Videogrep https://github.com/antiboredom/videogrep
- 実行環境: Google Colaboratory https://colab.research.google.com/