概要
種々音声認識モデルはありますが、比較的多く使われている whisper の各種実装の処理速度を計測します
文字起こしの精度は比較的高いため、特に言及はしません
2025/09/02 nvidia parakeet の計測結果を追記
2025/09/16 voxtral の計測結果を追記
対象ソフト
- voxtral
- parakeet
- whisper
-
whisper.cpp
- 通常の whisper.cpp に加え apple silicon 最適化 を行う
- また、nvidia GPU も用いる
- faster-whisper
- mlx-whisper
-
whisper.cpp
環境
- mac book air
- sequoia 15.6
- m3 core 8
- 24G
- linux
- debian 12
- ryzen 5700x
- mem DDR4 32G
- nvidia RTX3060 12G
- python 3.11
- ec2 instance
- ubunt 22
- A10G 24G gpu memory
ec2 instance は, voxtral 24B での計測に利用
その他は rtx 3060 を使用
実行時の条件
- いずれもパラメータの調整は行わず初期設定で実行する
- 喰わせるファイル
- 0.5分
- 5分から30分までの各ファイル
参考サイト
細かな解説はこちらのサイトが分かりやすいと思います
voxtral
model | 0.5min | 5min | 10min | 15min | 20min | 25min | 30min |
---|---|---|---|---|---|---|---|
Voxtral-Mini-3B-2507 vllm |
4.8秒 | 22秒 | n/a | n/a | n/a | n/a | n/a |
Voxtral-Mini-3B-2507-bf16 llama |
4.6秒 | 29秒 | n/a | n/a | n/a | n/a | n/a |
Voxtral-Small-24B-2507 vllm |
4.2秒 | 50秒 | 81秒 | n/a | n/a | n/a | n/a |
高速ではあるが parakeet や whisper の方が速い
補足
- n/a は以下理由により実行不可能でした
- out of memory
- file size over
- パラメータ調整が多分に必要なケース
- 異常な文字起こしが多発するなど
parakeet 計測結果
parakeet Model | Hard | 5分 | 10分 | 15分 | 20分 | 25分 | 30分 |
---|---|---|---|---|---|---|---|
ctc-1.1b |
GPU | 3秒 22秒 |
4秒 23秒 |
5秒 24秒 |
7秒 26秒 |
9秒 28秒 |
10秒 29秒 |
tdt_ctc-0.6b-j |
GPU | 3秒 22秒 |
5秒 23秒 |
7秒 25秒 |
9秒 27秒 |
10秒 29秒 |
13秒 31秒 |
tdt-0.6b-v3 |
GPU | 4秒 25秒 |
6秒 27秒 |
8秒 28秒 |
10秒 31秒 |
12秒 33秒 |
14秒 35秒 |
tdt_ctc-0.6b-j |
Mac MLX | 10秒 | 20秒 | 29秒 | 38秒 | 43秒 | 47秒 |
後述する whisper よりはるかに高速でした
補足
- 数値が二行ある場合
- 一行目は推論のみの所要時間
- 二行目は model のロード時間を含めた所要時間. コマンド押下からコンソールが返ってくるまでの時間になる
- 設定不足なのか nvidia GPU ではロードに10~秒程時間を要するが、MLX ではそれほど要しないもよう
- ヘッダーの分数は、音声ファイルの長さ
- 以下 model は日本語対応しておらず、英語のファイルで試行
- ctc-1.1b
- tdt-0.6b-v3
- memory 不足対応
- 5分以上のファイルでは out of memory になるため、5分刻みのファイルを順次読み込ませている
whisper 計測結果
soft | Hard | 0.5分 | 5分 | 10分 | 15分 | 20分 | 25分 | 30分 |
---|---|---|---|---|---|---|---|---|
faster-whisper | nvidia GPU | 2.7秒 | 13秒 | 21秒 | 35秒 | 40秒 | 49秒 | 57秒 |
whisper.cpp | nvidia GPU | 2.1秒 | 13秒 | 25秒 | 39秒 | 51秒 | 1分2秒 | 1分12秒 |
whisper.cpp + mlx | Mac | 2.9秒 | 22.1秒 | 45秒 | 1分12秒 | 1分34秒 | 1分57秒 | 2分15秒 |
mlx-whisper | Mac | 4.1秒 | 42秒 | 48秒 | 1分12秒 | 1分40秒 | 1分58秒 | 2分40秒 |
whisper.cpp | Mac | 4.6秒 | 34秒 | 1分18秒 | 2分34秒 | 4分10秒 | 4分27秒 | 5分41秒 |
faster-whisper | Mac | 21秒 | 2分7秒 | 4分18秒 | 7分3秒 | 8分16秒 | 10分25秒 | 11分23秒 |
補足
利用 model は large-v3-turbo
nvidia GPU CUDA を使用すると whisper の中では最速となりました
apple CPU + core ML の性能の良さも垣間見れました
RTX3060 という古い GPU ですので、50xx のハイエンドを使用するとさらに高速化できるかもしれません
ryzen 5700X cpu では、全コアを処理に当てた上で、音声ファイルの長さの 1/2 程度の時間が必要でした
parakeet setup
mac : parakeet-mlx
uv add parakeet-mlx
uv run parakeet-mlx sample.wav \
--model mlx-community/parakeet-tdt_ctc-0.6b-ja \
--output-format vtt \
--highlight-words \
--chunk-duration 180 --overlap-duration 15
linux
lib などの依存関係の解決が必要になると思います
uv add nemo_toolkit['asr']
uv add "onnx<=1.18"
uv run main.py
import time, torch
import nemo.collections.asr as nemo_asr
asr_model = nemo_asr.models.ASRModel.from_pretrained(model_name="nvidia/parakeet-tdt_ctc-0.6b-ja")
files = [
'sample.wav',
]
with torch.inference_mode(), torch.autocast(device_type="cuda", dtype=torch.float16):
output = asr_model.transcribe(audio=files)
print(output[0])
whisper setup
簡単に setup 方法と参考サイトを記述する
whisper.cpp
setup
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
sh ./models/download-ggml-model.sh large-v3-turbo
cmake -B build
cmake --build build --config Release
run
./build/bin/whisper-cli -m ./models/ggml-large-v3-turbo.bin -f samples/jfk.wav
whisper.cpp + core ML
以下、不足があるかもしれません
mac setting
- 最新の mac os へ upate する
- ここでは
macos sequoia 15.6
を想定
- ここでは
- python 3.12 を install
- ここでは 3.12 で成功したが、環境により異なるかもしれません
- xcode install し、以下が表示されると恐らく良い
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
setup
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp
pip install coremltools
pip install openai-whisper
pip install ane_transformers
pip install torch==2.5.0
./models/generate-coreml-model.sh large-v3-turbo
./models/download-ggml-model.sh large-v3-turbo
cmake -B build -DWHISPER_COREML=1
cmake --build build -j --config Release
run
./build/bin/whisper-cli -m ./models/ggml-large-v3-turbo.bin -f samples/jfk.wav
実行時、以下の表記があれば core ML が有効化されている
whisper_init_state: loading Core ML model from './models/ggml-large-v3-turbo-encoder.mlmodelc'
system_info: n_threads = 4 / 8 | WHISPER : COREML = 1
faster-whisper
debian では cuda install と以下辺りが必要でした
sudo apt install libcudnn9-dev-cuda-13
sudo apt install libcublas-dev-12-9
mlx-whisper
以上となります
余談