概要
種々音声認識モデルはありますが、比較的多く使われている 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分までの各ファイル
参考サイト
細かな解説はこちらのサイトが分かりやすいと思います
parakeet 計測結果
| model | hard | 音声ファイル長 | |||||
|---|---|---|---|---|---|---|---|
| 5分 | 10分 | 15分 | 20分 | 25分 | 30分 | ||
| ctc-1.1b | GPU | 3秒 | 4秒 | 5秒 | 7秒 | 9秒 | 10秒 |
| 22秒 | 23秒 | 24秒 | 26秒 | 28秒 | 29秒 | ||
| tdt_ctc-0.6b-j | GPU | 3秒 | 5秒 | 7秒 | 9秒 | 10秒 | 13秒 |
| 22秒 | 23秒 | 25秒 | 27秒 | 29秒 | 31秒 | ||
| tdt-0.6b-v3 | GPU | 4秒 | 6秒 | 8秒 | 10秒 | 12秒 | 14秒 |
| 25秒 | 27秒 | 28秒 | 31秒 | 33秒 | 35秒 | ||
| tdt_ctc-0.6b-j | 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分刻みのファイルを順次読み込ませている
voxtral
| model | 0.5分 | 5分 | 10分 | 15分 | 20分 | 25分 | 30分 |
|---|---|---|---|---|---|---|---|
|
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
- パラメータ調整が多分に必要なケース
- 異常な文字起こしが多発するなど
whisper 計測結果
| soft | Hard | 0.5分 | 5分 | 10分 | 15分 | 20分 | 25分 | 30分 |
|---|---|---|---|---|---|---|---|---|
| faster-whisper | GPU | 2.7秒 | 13秒 | 21秒 | 35秒 | 40秒 | 49秒 | 57秒 |
| whisper.cpp | GPU | 2.1秒 | 13秒 | 25秒 | 39秒 | 51秒 | 1分2秒 | 1分12秒 |
| whisper.cpp + mlx | mlx | 2.9秒 | 22.1秒 | 45秒 | 1分12秒 | 1分34秒 | 1分57秒 | 2分15秒 |
| mlx-whisper | mlx | 4.1秒 | 42秒 | 48秒 | 1分12秒 | 1分40秒 | 1分58秒 | 2分40秒 |
| whisper.cpp | mlx | 4.6秒 | 34秒 | 1分18秒 | 2分34秒 | 4分10秒 | 4分27秒 | 5分41秒 |
| faster-whisper | mlx | 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
以上となります
余談