whisper.cpp のモデルデータのダウンロードに失敗したあとダウンロードし直す

OpenAI の Speach To Text の Whisper を C/C++ に移植したものがあります．
新しい環境で久しぶりにセットアップしたのですが，モデルデータのダウンロードに失敗したのでメモしておきます．

openai/whisper: Robust Speech Recognition via Large-Scale Weak Supervision

ggerganov/whisper.cpp: Port of OpenAI’s Whisper model in C/C++

whisper.cpp でモデルデータのダウンロードにを行うのに make や ./models/download-ggml-model.sh が使えます．

base モデルのダウンロード例

$ make base
$ bash ./models/download-ggml-model.sh base

モデルダウンロード中に失敗してしまうと再度実行してももうファイルあるよと言われすぐダウンロード終了してしまいます．

Model base already exists. Skipping download.

モデルデータはどうなっているかなと探すと最近は models の下に置くようなのでこれを消して再度実行でダウンロードし直せるようです，

$ rm models/ggml-base.bin

こちらに sha1(!) hash があるのでこれと合致しない場合消すようにすると良さそうです．

ggerganov/whisper.cpp · Hugging Face

$ sha1sum models/ggml-base.bin
465707469ff3a37a2b9b8d8f89f2f99de7299dac models/ggml-base.bin

途中までダウンロードが進んでいる場合，wget コマンドなどで続きからダウンロードすると転送時間が少なくて済みます．
モデルのダウンロードURL は以下などから確認できます．

ggerganov/whisper.cpp at main

Note

large が欲しい場合この中に見当たりませんが， large-v3 がそれのようです．

プログレスの + 部分はダウンロード済でレジュームした部分， = が今のセッションでダウンロードした部分

$ wget -c "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.bin?download=true" \
-O models/ggml-medium.bin

--snip--

moodels/ggml-medium.bin 23%[+++++++++++++======> ] 341.88M 632KB/s

安定した環境だと問題ないのでしょうが回線やコンピュータが不安定だったり(ダウンロードしているのを忘れてサスペンドしてしまったり)すると嵌るかもしれません．

環境

$ git log -q -1
commit 6739eb83c3ca5cf40d24c6fe8442a761a1eb6248 (HEAD -> master, origin/master, origin/HEAD)
Author: Georgi Gerganov <ggerganov@gmail.com>
Date: Sat Jul 27 20:35:04 2024 +0300

whisper : handle empty mel (#2324)
$ lsb_release -dr
Description: Debian GNU/Linux trixie/sid
Release: n/a
$ arch
x86_64