OpenAI の Whisper という文字起こしソフトウェアがあります.これを使い,カンファレンス等の文字起こしをしたりして便利に使わせてもらっています.
Whisper を使う際にモデルを指定する必要があります.
モデルは複数存在し,基本的にサイズの大きいもののほうが文字起こし精度が良いですが,コンピュータのリソースを消費します.
今回 large-v3-turbo
(turbo
と略されるようです.)という新しいモデルがリリースされました.このモデルは large-v3
を元にデコーダを小さくすることで精度はそのままに高速になっているそうです.
どのくらい速くなっているのか少し試してみました.
以下は Whisper の README.md にあるモデルの比較です.一番下に追加された turbo
が今回試したいものです.
Size Parameters English-only model Multilingual model Required VRAM Relative speed tiny 39 M tiny.en
tiny
~1 GB ~10x base 74 M base.en
base
~1 GB ~7x small 244 M small.en
small
~2 GB ~4x medium 769 M medium.en
medium
~5 GB ~2x large 1550 M N/A large
~10 GB 1x turbo 809 M N/A turbo
~6 GB ~8x
turbo
を試すには Python の openai-whisper
パッケージのバージョンを 20240930
以降にする必要があります.
新規に導入する場合は以下のような感じで.
$ python3 -m venv venv $ source venv/bin/activate $ pip install openai-whisper
既存のものをアップグレードする場合はこんな感じで.
$ source venv/bin/activate $ pip install -U openai-whisper
バージョンを確認して 20240930
以降になっていることを確認.
$ pip list | grep whisper openai-whisper 20240930
テストのための音声を用意します.今回はNHKラジオニュースを利用しました.RSS feed から最新のニュースを入手しました.
$ rsstail -n1 -N1eu https://www.nhk.or.jp/s-media/news/podcast/list/v1/all.xml | grep .mp3$ | xargs wget
音声情報.丁度5分ほどの音声です.
$ ffprobe 08fe3ee2f8d9f9fa8481508530974854_64k.mp3 2>&1 |grep Stream Stream #0:0: Audio: mp3 (mp3float), 48000 Hz, stereo, fltp, 64 kb/s $ ffprobe 08fe3ee2f8d9f9fa8481508530974854_64k.mp3 2>&1 |grep Duration: Duration: 00:05:00.02, start: 0.023021, bitrate: 64 kb/s
モデルデータがない状態で Whisper を実行するとモデルデータのダウンロードが実行されます.
Linux 環境だと既定値では ~/.cache/whisper/
に保存されます.--model_dir
オプションで変更することも可能です.
サイズを見ると turbo
は 1.6GB 程で medium
とサイズが近いです.
$ ls -Ss1 ~/.cache/whisper/ total 6990496 3014656 large.pt 1580028 large-v3-turbo.pt 1492200 medium.pt 472284 small.pt 141860 base.pt 141860 base.en.pt 73804 tiny.pt 73804 tiny.en.pt
turbo
と medium
で実行してみました.
今回実行した端末は CPU:Intel Core i7-10510U/RAM 16GB
の端末です.日常作業を行いながらだったので Whisper だけで動かすともう少し速くなると思います.
$ time whisper --model large-v3-turbo --threads `nproc` --language Japanese 08fe3ee2f8d9f9fa8481508530974854_64k.mp3 〜略〜 real 6m48.087s user 46m41.336s sys 2m31.058s
$ time whisper --model medium --threads `nproc` --language Japanese 08fe3ee2f8d9f9fa8481508530974854_64k.mp3 〜略〜 real 19m49.721s user 145m13.502s sys 0m44.894s
turbo
は大分速いですね.もう少し早くなるとリアルタイム文字起こしができるのですが.
結果の文字起こしの精度も問題なさそうです.しばらくはこの large-v3-turbo
モデルを使っていこうと思います.
$ pip list | grep whisper openai-whisper 20240930 $ dpkg-query -W python3 rsstail python3 3.12.6-1 rsstail 2.1-1 $ lsb_release -dr Description: Debian GNU/Linux trixie/sid Release: n/a $ arch x86_64 $ cpu-info Packages: 0: Intel Core i7-10510U Microarchitectures: 4x Sky Lake Cores: 0: 2 processors (0-1), Intel Sky Lake 1: 2 processors (2-3), Intel Sky Lake 2: 2 processors (4-5), Intel Sky Lake 3: 2 processors (6-7), Intel Sky Lake Clusters: 0: 8 processors (0-7), 0: 4 cores (0-3), Intel Sky Lake Logical processors (System ID): 0 (0): APIC ID 0x00000000 1 (4): APIC ID 0x00000001 2 (1): APIC ID 0x00000002 3 (5): APIC ID 0x00000003 4 (2): APIC ID 0x00000004 5 (6): APIC ID 0x00000005 6 (3): APIC ID 0x00000006 7 (7): APIC ID 0x00000007 $ grep ^MemTotal: /proc/meminfo MemTotal: 15987016 kB $ free total used free shared buff/cache available Mem: 15987016 9784984 2546356 2600260 6612472 6202032 Swap: 17575932 627800 16948132
One thought to “OpenAI Whisperの新しいlarge-v3-turboモデルを少し試す”