OpenAI Whisperの新しいlarge-v3-turboモデルを少し試す

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

turbomedium で実行してみました.
今回実行した端末は CPU:Intel Core i7-10510U/RAM 16GB の端末です.日常作業を行いながらだったので Whisper だけで動かすともう少し速くなると思います.

turbo
$ time whisper --model large-v3-turbo --threads `nproc` --language Japanese 08fe3ee2f8d9f9fa8481508530974854_64k.mp3
〜略〜

real    6m48.087s
user    46m41.336s
sys     2m31.058s
medium
$ 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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です