Whisperは、ChatGPTで知られるOpenAIによって開発された非常に正確な音声認識モデルで、会話の音声をテキストに書き起こしてくれる。
100万時間以上のデータでトレーニングされた最新のAIモデルだが、驚くべきことにオープンソースで公開されているため、誰でも、無料で、簡単に利用することができる。
有料の音声書き起こしサービス・議事録書き起こしサービスは数多くあるが、実は無料のWhisperを使えば十分だ。
むしろ、Whisperの方が殆どの音声認識ソフトより精度が高いだろう。
とはいえ、プログラミングの知識がない人にとっては、少し利用するハードルがある。
そこで、Whisperの最新モデル(Whisper v3)を、簡単に使える小さなWebアプリにしてみたので、この記事で使い方を紹介する。
Whisperを、Google ColabというGoogleアカウントを持っている人なら誰でも無料で利用できる環境で実装している。
Googleドライブに音声ファイルやテキストファイルを預ける形になるので、誰が作ったか分からないスマホアプリを使うよりは、安心感もあるだろう。
文字起こししたテキストは、YouTube動画の字幕付けにも使える.srt
形式での書き出しにも対応しているので、AIによる高精度の自動音声認識を活かして、動画編集者の生産性も大きく向上できるはずだ。
Whisperとはそもそも何か?超正確な音声認識モデル
Whisperは、ChatGPTなどで知られるOpenAIが開発して公開しているモデル。
多言語に対応しており、英語や日本語はもちろんのこと、99言語に対応している。
日本語で喋っている内容を英語に翻訳してテキストに変換するなど、書き起こしだけでなく、翻訳にも対応しているのも特徴だ。
2022年9月にオープンソースソフトウェアとして初めてリリースされ、23年11月にバージョン3にアップデートされたばかりだ。
バージョン1は、Webから収集された68万時間の音声データでトレーニングされていたが、最新バージョンのWhisper v3は、100万時間以上のデータでトレーニングされているとのこと。
アクセント、背景ノイズ、専門的な単語に対しても驚くほど正確に書き起こしてくれる。
筆者がこれまでに実用してみた中では、動画の音声の書き起こし(英語・日本語)はもちろんのこと、屋外でボイスレコーダーで録音したノイズまみれのインタビュー音声などでも、正確に書き起こされて驚いた。
誰でも、無料で、超簡単にWhisperを使えるGoogle Colabノート
Whisperは、コマンドラインやPython環境で簡単に動かすことができるが、プログラミングの知識が全くない人にとっては少し利用のハードルが高いだろう。
Google Colaboratoryは、Googleアカウントを持っていれば、誰でも簡単にPythonプログラムを動かすことのできるノートブックだ(PythonがくっついたWordファイルのようなもの)。
以下のURLで、私が作ったノートブックを開くだけで、そのままWhisperによる書き起こしを利用できる。
プログラミングの知識は不要、.mp3
または.m4a
の音声ファイルをアップロードするだけで、自動で書き起こしされてGoogleドライブにテキストファイルを保存できる。
なお、音声ファイルのアップロードが、Safariでは正しく動作しない。Google Colabを使うときは、Google Chromeを利用することをオススメする。
上記のノートブックを見るだけでも、使い方が分かるようになっているはずだが、以下でステップバイステップで解説する。
Google Colaboratoryの基本的な使い方
そもそもGoogle Colaboratoryがどんなものかを知りたい人は、公式の説明書を開いてみると分かりやすい。
公式の説明書も、Google Colaboratoryのノートブックとして公開されている。
ざっくり説明すると、以下の画像のように、テキストと、Pythonコードを混ぜて記述できるWordファイルのようなイメージだ。
青枠で囲まれているグレー部分がPythonコードとなっており、「再生ボタン」のようなボタンをクリックすると、その部分のコードが実行され、その結果が下部に表示される仕組みになっている。
したがって、この記事で紹介しているWhisperアプリのような、Google Colab形式で配布されたノートブックを使うときは、
上から順に読み進めて、上から順に「再生ボタン」を押していく
のが唯一のルールで、複雑なことは何も理解していなくても大丈夫だ。
ちなみに、Whisperのノートブックを開いた上で、上部のメニューから「ランタイム」-「すべてのセルを実行」をクリックすれば、以下のステップは全てすっ飛ばせる。
が、分かりやすさを重視してワンステップずつ解説していく。
GPUインスタンスへの接続
デフォルトでは、Google Colabの「ランタイムのタイプ」はCPUになっている。
通常はこのままでも良いのだが、音声認識においては、GPUに切り替えた方が圧倒的にスピードが速い。
メニュー上部から「ランタイム」-「ランタイムのタイプを変更」を選択し、以下のような画面が表示されたら、「ハードウェアアクセラレータ」を「T4 GPU」に変更して欲しい。
これによって、以降で実行するWhisperモデルがGPU上で動いてくれるようになる。
Googleドライブの接続
Whisperのノートブックのセクション2「Googleドライブマウント&Whisperのインストール」において、初めて実行ボタンをクリックすると、以下の二つのメッセージが表示されるはずだ。
まず1つ目は、ノートブックの作成者がGoogleではなく当ブログであることを知らせるメッセージなので、「このまま実行」を押す。
また、Whisperで音声を書き起こしたテキストを、Googleドライブに保存する機能を付けてあるため、GoogleドライブをこのColabノートブックに接続する必要がある。
「Googleドライブに接続」をクリックして、自分のGoogleアカウントの情報を入れてログインしてアクセスを許可する。
使用するWhisperのモデルの選択
Whisperは、その精度と速度次第で、5つのモデルに分かれている。
大きければ大きいほど精度が高くなるがスピードが落ち、小さいとスピードは速いが誤字脱字や聞き逃しが多くなる。
最も小さなtiny
と、最も大きなlarge
の間には、約32倍ものスピードの差がある。
ただ、通常の用途では最も精度の高いlarge
をオススメする。
large
だと1時間ほどのMTGの録音を書き起こす場合などはかなり時間がかかる(正確に計測していないが日本語1時間だと20-30分ほど?)ものの、誤字脱字が殆どなく、正確に書き起こされるためだ。
サイズ | パラメーター数 | 英語のみモデル | 多言語モデル | 必要なVRAM |
---|---|---|---|---|
tiny | 39 M | tiny.en | tiny | ~1 GB |
base | 74 M | base.en | base | ~1 GB |
small | 244 M | small.en | small | ~2 GB |
medium | 769 M | medium.en | medium | ~5 GB |
large | 1550 M | N/A | large | ~10 GB |
Whisperのノートブックのセクション3「モデルの選択」では、デフォルトでlarge
を選択している。
どうしても速度が必要な場合には、medium
に書き換えたり、英語しか入っていないことがわかっている音声の場合には、medium.en
に書き換えてみるのも良いだろう。
large
モデルを選んだ場合、モデルを読み込むのにも30秒〜1分ほどかかる。
音声ファイルのアップロードと書き起こし
Whisperのノートブックのセクション4は、アプリの中身であり、多少複雑なコードが入っているので、実行ボタンさえ押してもらえれば良い。
セクション1〜4のセルを全て実行していれば、セクション5でいよいよファイルのアップロードと書き起こしが可能になる。
セクション5「ファイルアップロード&書き起こしの実行」にあるPythonコードを実行すると、以下のように「Choose Files」というボタンが表示され、ここから音声ファイルをアップロードできる。
アップロードしたら、その瞬間に音声のWhisperによる分析が始まり、完了次第書き起こされたテキストが画面に表示される。
実際に、iPhoneのボイスメモアプリで「これは音声認識のテストです。音声認識テストのために喋り〜〜」という短い音声を録音し、アップロードしてみたところ、上の画像の通りばっちり書き起こされた。
数十分〜数時間の長い音声の場合、書き起こしが完了するまでにかなり時間がかかるので、このセルの実行が終わるまで、ブラウザの「戻る」などは押さずに辛抱強く待機してほしい。
もちろん、他のタブで他のページを見たり、PC上で他の作業をする分には問題ない。
書き起こされたテキストのGoogleドライブへの保存
セクション6「結果の保存」のPythonセルを実行すると、セクション5で書き起こされたテキストが、テキストファイル(.txt)となってGoogleドライブに保存される。
全てが問題なく動作していればGoogleドライブ内の「マイドライブ」-「whisper」というフォルダに、「output.txt」というファイルが保存されているはずだ。
YouTubeなど動画編集で使える字幕ファイルの作成
コメントでの要望を受けて、ノートブックをアップデートし、YouTubeなど動画編集で便利な字幕ファイルの生成にも対応してみた。
ノートブックの最後のセクションとして、動画編集ソフトや文字起こしソフトで利用できる一般的な字幕ファイルである.srt
ファイルも出力できる機能が追加されている。
SRT形式とは、音声から文字起こしされたテキストに、タイムスタンプがついているテキストファイルだ。
YouTubeにアップしている動画に字幕をつける際に、SRTファイルをアップロードすることもできる。
Windowsのメモ帳など、普通のテキストエディタで開いて修正を行うこともできるので、Whisperで自動書き起こしを行った後で、誤字脱字を最終チェックして微修正すれば、字幕付けの作業が速攻で終了する。
この機能は、オープンソースのWhisperモデルに付属しているwhisper.utilsという様々な便利機能が詰まった補助スクリプトから、.srt
形式での書き出しに対応した関数を呼び出して実現している。
YouTube動画編集のために利用する字幕を、Whisperに高精度・高速で書き起こしてもらえるので、非常に便利だ。
Whisperによる音声テキスト化が切り開く可能性
これで、あなたも最新の音声認識AIモデルであるWhisper v3を、好きなだけ、無料で使い放題になった。
Whisperのような非常に高精度の音声認識モデルがあれば、さまざまなタスクに役立つことだろう。
例えば、以下のような実用例を考えてみた。
まずは、大学の講義ノート。
大学の授業にボイスレコーダーを持っていくか、スマホのボイスメモアプリを使って講義を録音すれば、授業が終わった10分後には、Whisperによって授業の内容が完璧に書き起こされたノートが手に入る。
ノートを取るのに必死で、内容の理解が追いつかないといった不毛な苦労が、全くなくなってしまうだろう。
さらに、その書き起こされた内容を、ChatGPTに読み込ませて要約させれば、あっという間にノートの完成だ。
また、ビジネスの現場では、議事録から解放されるかもしれない。
オンラインミーティングを録音したり、対面でのMTGを録音しておけば、会議が終わった後にWhisperで全文を書き起こすことができる。
全文書き起こしを保存しておくだけでも、検索ができるアーカイブとして便利だが、こちらもChatGPTに議事録として整形・要約させれば、議事録を作る時間も大幅に短縮できるし、MTG中にMTGの内容に集中することができる。
職業によっては、インタビューの書き起こし、英語での会議参加者の発言の記録、海外出張中のやり取りを録音しておいて記録するなど、その応用範囲はあまりにも広い。
個人でも、Whisperのような超高性能な音声認識モデルが無料で入手でき、このスピードで動かすことができてしまうとは、本当にいい時代だと思う。
なお、この記事で紹介したようにGoogle Colabの無料GPUインスタンスを活用して公開されているWhisperモデルを使う方法のほかに、OpenAIが有料で提供しているWhisper APIを使って、より高速で簡単にWhisperを使う方法もある。
APIを利用したバージョンも別の記事で無料公開しているので、参考にしてほしい。
動画制作をしている者です。すごく便利です。ありがとうございます。
ただ、動画への字幕として使うには、タイムスタンプのついた.srtで吐き出せれば完璧なのですが、どこを触ればできるでしょうか??
ノートブックを更新して、.srt形式での書き出しにも対応しましたので、試してみてください。
おお!ありがとうございます。やってみます。
これはとてもすごいですね!ぜひ愛用させていただきたいと思います!
ひとつご質問なのですが、こういったものって文字数の分割とかも制御出来たりするのですかね?たまに10秒ぐらいでまとまった文面で文字起こしされる場合があり、字幕等つける時などだいたい15文字程度で分割したい時があるので…
素晴らしい内容とコードを公開していただきありがとうございます。
日本語の音声でコードを動かしましたが結果が英語に翻訳されてしまいます。
日本語のまま出力するにはどうしたらいいでしょうか?