OpenAIのWhisperを使ってYouTube動画から文字起こしをしよう!モデルの精度を確認!StreamlitでWebアプリ化!

スポンサーリンク
Python

OpenAIのChatGPT(超高性能チャットAI)の注目度が最近非常に上がっています。

sl pytrend
This app was built in Streamlit! Check it out and visit for more awesome community apps. 🎈

そのOpenAIが提供している音声認識モデルWhisperも高速高精度化しているようです。文字起こしソリューションとして、クラウド・OpenAI側にデータを渡さない、セキュアな環境での使用が可能という事で議事録生成であったり、他の翻訳サービスと合わせての動画からの文字起こし+翻訳など、”実務で役に立つサービス”に成長しそうな予感がします。

実際にどのくらいの精度や速度なのかを確認してみたいと思います。

実際に作成したWebアプリ

Your browser does not support iframes.

注意:iOSのセキュリティの関係でブログに埋め込んだ状態では表示できない場合があります。その場合は以下のリンクから直接に新規のタブとして表示てください。

frame02
Transcription of youtube video using OpenAI's whisper

文字起こしを行いたいYouTubeの動画URLを入力したのち、一旦音声ファイルにダウンロードし、その音声ファイルをWhisperのモデルを選択して、実行ボタンを押すと文字起こしができるシンプルなWebアプリになっています。

使用上の注意

選択動画の長さ

無料のStreamlitというサービスを利用しています。いったん選択したYouTube動画を音声のみダウンロードし、それをWhisperに認識させています。ですので、音声のダウンロードに時間がかかりますので、10分以上など長い時間の動画の扱いは少し難しい場合があります。また、短時間に何度もダウンロードなど行っているとYouTubeの側から一定時間アクセス禁止の制限を受ける場合があります。

Whisperのモデル

Whisperの言語認識モデルには5種類あり、スピードと正確性にはトレードオフの関係があります。また、使用するメモリサイズも精度を上げようとすると大きなサイズを必要とします。たまにメモリ不足という事で強制終了する場合があります。

https://github.com/openai/whisper#available-models-and-languages
GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision
Robust Speech Recognition via Large-Scale Weak Supervision - openai/whisper

実際の例

2ステップを踏むことになります。

1.YouTubeからダウンロードで動画の音声のみを抽出

ダウンロードが終了した時点で音声の確認ができます。

今回の例では事前にダウンロードした音声ファイルがある状態です。

モデルを使った文字書き起こし

今回の例では簡易のbaseモデルを使った例になります。

モデルごとの違い

baseモデル

「週間の天気」が「週間の電気」などとなっているようです。

smallモデル

「低気圧」が「定期圧」となっていたり、微妙な違いが目につきます。

medium

Streamlitのサーバーでmediumにするとエラーが起きたりします。

日本語のモデルが1.4GB程度あったりするので、無料のサーバー上で動かすにはサイズが大きすぎるようです。

同じコーディングで自身のPCで行った文字書き起こしの結果は以下のようになります。

「天気」は認識していますあ、「低気圧」が「天気圧」となったりして惜しいですね。

英語

FRB議長パウエル氏のコメントは以下のように文字起こしができます。

Fed Chair Powell Says He Makes a Fair Salary
https://www.youtube.com/watch?v=RPiM3zGsbf4

のように文字起こし&翻訳も可能です。

AIやPython関係の仕事効率化について

以下のような記事も書いています。興味のある方は参考にしてみてください。

Pythonや課題解決に関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
【コピペで動く!】日本株、米国株で個別銘柄ベータ値(β値)を簡単に調べる方法 Python 米国株 Webサービス&コード 【Google Colabで違いをみつけろ!】
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
過去50年間のS&P500の季節性の値動きから負けにくいポジション構築はできるのか考える・大統領選挙のアノマリー対応!【コピペで動く!】Google ColabのPythonで自分で調べてみよう!
曜日による米国株指数(S&P500)のパフォーマンスに違いはあるのか?有利なポジション取りはできるのか?【Google ColabのPython:コピペで動く!】Twitterで出てくる知見は本当か自分で調べてみよう。
エクセルでサブスクタイプの契約管理!契約期間を塗りつぶして可視化したり、月次契約金額の集計で予実管理!
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
【コピペで動く!】IB証券(インタラクティブ・ブローカーズ証券 )へのPythonでのAPI接続 ib_insync [自分が使っているPythonコード]
自動化・効率化でなにができるのか!Google FinanceやYahoo Financeからデータ取得して年初来パフォーマンスや週次騰落率のファクターチェック
米国株のティッカー(Symbol)のスクレイピングによる取得、APIによるヒストリカルデータやファンダメンタルズデータ取得について【コピペで動く!】Python,Quandl,無料枠あり
Google ColabでYouTube動画を開始・終了の時間を指定してPythonでダウンロード(音声・動画両方対応)【コピペで動く!】
Pythonを使ってTwitterに自動投稿。APIの設定など。(Twitter API v2とAPI v1.1の併用)

コメント

タイトルとURLをコピーしました