✔️

whisper、whisper.cpp、faster-whisperの比較

2023/04/26に公開

現状のwhisper、whisper.cpp、faster-whiperを比較してみたいと思います。

openai/whisperに、2022年12月にlarge-v2モデルが追加されたり、色々バージョンアップしていたりと公開からいろいろと進化しているようです。
https://github.com/openai/whisper

CPU向けにC/C++で書かれたバージョンです。Core ML supportだそうですので、Mac向け感が強いです。
https://github.com/ggerganov/whisper.cpp

CTranslate2でWhisperモデルの書き直して、オリジナルと同等の精度で4倍速く、メモリ使用量も少ないそうです。
https://github.com/guillaumekln/faster-whisper

以降、すべてGoogle Colabで実行しています。
サンプルは、アナウンスの音声(WAV)の場合(48秒)を試しました。

結果

faster-whisperのGPUは噂通り爆速でした。
本家whisperはCPUが速いです。GPUでも初期に比べて85.62s → 23.9sに高速化してます。
whisper.cppはいまいちでした。Macでこそ真価が発揮されると思われます。

Implementation device Time 結果
openai/whisper cpu 3min 1s 朝のともみです今日の東京株式市場で日経平均株価は小幅促進となっています終わり値は昨日に比べ22円72銭高の11,088円58銭でした当初一部の値上がり銘柄数は1146対して値下がりは368変わらずは104銘柄となっていますここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を抽選で10名様にプレゼントいたしますお申し込みはお電話で東京03-0107-837303-0107-8373まで以上番組からのお知らせでした
openai/whisper gpu 23.9s 朝のともみです今日の東京株式市場で日経平均株価は小幅促進となっています終わり値は昨日に比べ22円72銭高の11,088円58銭でした当初一部の値上がり銘柄数は1146対して値下がりは368変わらずは104銘柄となっていますここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を抽選で10名様にプレゼントいたしますお申し込みはお電話で東京03-0107-837303-0107-8373まで以上番組からのお知らせでした
whisper.cpp cpu 7min 13s 朝のともみです今日の東京株式市場で日経平均株価は小幅促進となっています終わり値は昨日に比べ22円72銭高の11,088円58銭でした当初一部の値上がり銘柄数は1146対して値下がりは368変わらずは104銘柄となっていますここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を抽選で10名様にプレゼントいたしますお申し込みはお電話で東京03-0107-8373、03-0107-8373まで以上番組からのお知らせでした
faster-whisper cpu(float32) 4min 18s 浅野ともみです 今日の東京株式市場で日経平均株価は小幅促進となっています 終わり値は昨日に比べ22円72銭高の11,088円58銭でした 当初一部の値上がり銘柄数は1146 対して値下がりは368 変わらずは104銘柄となっています ここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を 抽選で10名様にプレゼントいたします お申し込みはお電話で東京03-0107-8373 03-0107-8373まで 以上番組からのお知らせでした
faster-whisper cpu(int8) 2min 27s 浅野ともみです 今日の東京株式市場で日経平均株価は小幅促進となっています 終わり値は昨日に比べ22円72銭高の11,088円58銭でした 当初一部の値上がり銘柄数は1146 対して値下がりは368 変わらずは104銘柄となっています ここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を 抽選で10名様にプレゼントいたします お申し込みはお電話で東京0301078373 0301078373まで 以上番組からのお知らせでした
faster-whisper gpu(float16) 5.22 s 浅野ともみです 今日の東京株式市場で日経平均株価は小幅促進となっています 終わり値は昨日に比べ22円72銭高の11,088円58銭でした 当初一部の値上がり銘柄数は1146 対して値下がりは368 変わらずは104銘柄となっています ここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を 抽選で10名様にプレゼントいたします お申し込みはお電話で東京03-0107-8373 03-0107-8373まで 以上番組からのお知らせでした
faster-whisper gpu(int8_float16) 4.73 s 浅野ともみです 今日の東京株式市場で日経平均株価は小幅促進となっています 終わり値は昨日に比べ22円72銭高の11,088円58銭でした 当初一部の値上がり銘柄数は1146 対して値下がりは368 変わらずは104銘柄となっています ここでプレゼントのお知らせですこの番組では毎月発行のマンスリーレポート4月号を 抽選で10名様にプレゼントいたします お申し込みはお電話で東京0301078373 0301078373まで 以上番組からのお知らせでした

whisper

インストール

!pip install -U openai-whisper

モデル読込

import whisper
model = whisper.load_model("large", device="cpu")

実行

%%time
result = model.transcribe("sampleTokyo.WAV")
print(result["text"])

whisper.cpp

インストール

!git clone https://github.com/ggerganov/whisper.cpp.git
%cd whisper.cpp
!bash ./models/download-ggml-model.sh large
!make

16kHzのWAVに変換

!ffmpeg -i ../sampleTokyo.WAV -ar 16000 sampleTokyo.wav

実行

%%time
!./main -f ./sampleTokyo.wav -nt -l ja -m models/ggml-large.bin

Faster Whisper

インストール

!pip install faster-whisper

モデル読込

from faster_whisper import WhisperModel
model_size = "large-v2"

model = WhisperModel(model_size, device="cpu", compute_type="float32")
#model = WhisperModel(model_size, device="cpu", compute_type="int8")
#model = WhisperModel(model_size, device="cuda", compute_type="float16")
#model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
%%time
segments, info = model.transcribe("sampleTokyo.WAV", beam_size=5, language='ja')
results = list(segments)
print(' '.join([result.text for result in results]))

Discussion