【Whisper】Pythonで音声ファイルを書き出してみよう!

Whisperとは

Whisperとは、OpenAIが開発している汎用的な音声認識モデルです。
Web上から収集した68万時間におよぶ音声データで学習され、音声翻訳や言語識別だけでなく、多言語音声認識を行うことができるマルチタスクモデルでもあるモデルになります。
Whisperを用いることで、音声からの文字起こしと音声からの翻訳処理を行えます。
この記事では2つの方法をPythonで解説します。

https://openai.com/blog/whisper/
https://github.com/openai/whisper

日本語の単語誤り率(WER/Word Error Rate)は6.4%とグラフに記載があります。
この数値は、Whisperが対応している他の言語と比較しても、上位に位置しており、高い精度で文字起こしが可能だと解釈できそうです。

また、5つのモデルサイズが提供されており、今回の記事では「base」「small」「large」の3種類を利用してみます。
一番小さいサイズが「tiny」で一番大きい「large」になるほど精度が高くなります。

画像引用:https://github.com/openai/whisper

Whisperで文字起こしする環境の準備

Google Colab 無料版GPU環境を用いて、手元で録音した音声ファイルの文字起こしを行ってみます。

まずはColabの「ランタイムのタイプ変更」よりGPU環境に変更いたします。

参考:Google Colaboratory とは?

次に、Whisperをインストールします。

!pip install git+https://github.com/openai/whisper.git

上記のコマンド実行後、以下のコードでWhisperを読み込みます。

import whisper

正常にインストールにできていれば、エラーが発生することなく読み込むことができます。

音声ファイルの準備

今回は、Mac環境のQuickTime Playerを用いて音声ファイル(.m4a)を準備しました。
ファイルは、「mp4」や「wav」ファイル等に対応していますので、任意の方法で音声データを準備してみてください。

準備したファイルをGoogle Colabにアップロードします。
今回は「test.m4a」をアップロードしました。

参考:Google Colaboratory とは?

Whisperで文字起こし

続いて、Whisperで文字起こしするプログラムを作成しましょう。

記述するコードは以下になります。

import whisper
model = whisper.load_model("base")
# result = model.transcribe("準備したファイル名を指定") # 今回の記事ではtest.m4aを用います。
result = model.transcribe("/content/test.m4a")
print(result["text"])

上記のプログラムを実行すると、文字起こしされます。Whisperで文字起こしした文章が以下になります。

AIアカデミーとはあなたに最適化されたカリクラムで、Python AIを実践的に学べるプログラミング学習サービスです。学習者は作りたいものを作りながら必要なスキルを効率よく見につけることができます。

気になる所としては「カリクラム」となっていますが、その他はほぼ完全に書き出しが出来ています。

続いて、「small」モデルで書き出ししてみます。

import whisper
model = whisper.load_model("small")
result = model.transcribe("/content/test.m4a")
print(result["text"])

Whisperで文字起こしした文章が以下になります。

AIアカデミーとはあなたに最適化されたカリキュラムでPython AIを実践的に学べるプログラミング学習サービスです。学習者は作りたいものを作りながら必要なスキルを効率よく身につけることができます。

こちらは「base」モデルより良い結果になりました。
アカデミーがAcademyになっていなかったり、Python AIと、が入ってない程度です。

「base」モデルと「small」モデルで試しましたが、他にも「medium」や「large」版もあります。

最後に、「large」版を試してみると以下が書き出しされました。

AI Academyとは、あなたに最適化されたカリキュラムでPython、AIを実践的に学べるプログラミング学習サービスです。学習者は、作りたいものを作りながら必要なスキルを効率よく身につけることができます。

完璧に書き出しすることが出来ました。

※音声ファイルのデータ量にもよりますが、「large」版は実行してから実行完了するまで1分弱かかりました。

import whisper
model = whisper.load_model("large")
result = model.transcribe("/content/test.m4a")
print(result["text"])

今回は書き出しを中心に解説しましたが、翻訳も可能です。

task="translate"とします。

result = model.transcribe("/content/test.m4a", verbose=True, language="ja", task="translate")
print(result["text"])

出力結果は以下の通りです。

AI Academy is a programming learning service that allows you to learn Python and AI in a practical way with your optimized curriculum. Students can learn the skills they need while making what they want to make.

上記から、かなり高精度であることがわかりました。
今後は、あらゆる場面で音声認識の活用が期待できそうです。
直近では、オンラインMTGの音声を書き起こしなどに活用できそうだと感じました。

AIの基礎から機械学習技術を効率よく身に付けたい方へ

Whisperによる文字起こし、いかがでしたでしょうか?もっと学びたいと思われた方にAI Academy Bootcampの公式LINEをご案内します。友だち登録してくださった方に無料講義や無料動画のご案内、さらに学びたい方には受講割引クーポンのプレゼントもございます。

無料で学ぶチャンスです!

AI Academy Bootcamp動画見放題プラン:オンデマンド動画+チャットサポートプラン】 6か月35,000円(税込)では、PythonプログラミングAI基礎統計学機械学習SQL深層学習の基礎から応用範囲まで幅広く学ことが出来ます。
独学でプログラミングを学習したけれど挫折してしまった方や、機械学習や深層学習に関してわからないことを講師にいつでも質問できる環境で学びたいという方は是非ご受講ご検討ください。