※本ページには広告(アフィリエイトプログラム等)が含まれます。
※本ページには広告(アフィリエイトプログラム等)が含まれます。モデルの数値は 2026年8月16日時点の whisper.cpp 公式リポジトリの記載、サーバーの出力は同日に運用中の VPS(Debian 12・メモリ 958MB)から採取した実測値です。
🎯 結論:メモリ 1GB の VPS で載るのは tiny と base だけ
結論から書きます。文字起こしは画像生成と違って CPU だけでも動きます。GPU が無い一般的な VPS でも成立する数少ない用途です。
ただしモデルサイズがメモリで決まります。公式に必要メモリが明記されていて、手元の環境(空きメモリ 468MB)と突き合わせると、現実的に選べるのは tiny と base の 2 つだけでした。small 以上は載りません。
- ✅ tiny(必要メモリ 約 273MB) → 1GB の VPS でも余裕をもって動く
- ✅ base(約 388MB) → 実用ラインはここから
- ⛔ small(約 852MB) → メモリ 958MB の箱では**ほぼ全部を占める**
- ⛔ medium(約 2.1GB)/ large(約 3.9GB) → 物理的に不可能
- 🔑 量子化で下げられる → whisper.cpp は整数量子化に対応
Whisper と whisper.cpp
依存が無いのが強み
whisper.cpp は公式に 「Plain C/C++ implementation without dependencies」と書かれているとおり、依存関係がありません。Python の環境構築が要らないので、Debian 12 の pip 事情に巻き込まれずに済みます。
Debian 12 の Python 事情を避けられる
参考までに、同じ環境で Python 版を使おうとするとここで止まります。
$ python3 -m pip --version
/usr/bin/python3: No module named pip
pip が未導入で、システムの Python も PEP 668 でロックされています。C/C++ 実装ならこの回り道が丸ごと不要です。
GPU が無くても動く
手元の VPS に GPU は載っていません。
$ nvidia-smi
bash: nvidia-smi: command not found
それでも文字起こしは成立します。画像生成との決定的な違いがここです。
モデルサイズと必要メモリ
公式の数値
| モデル | ディスク | 必要メモリ |
|---|---|---|
| tiny | 75 MiB | 約 273 MB |
| base | 142 MiB | 約 388 MB |
| small | 466 MiB | 約 852 MB |
| medium | 1.5 GiB | 約 2.1 GB |
| large | 2.9 GiB | 約 3.9 GB |
手元の環境と突き合わせる
$ free -h
total used free shared buff/cache available
Mem: 958Mi 489Mi 123Mi 58Mi 573Mi 468Mi
使えるのは 468MB。この数字を上の表に当てるとこうなります。
| モデル | 1GB の VPS(空き 468MB) |
|---|---|
| tiny(273MB) | ✅ 余裕あり |
| base(388MB) | ✅ 載る(他を止める余裕は無い) |
| small(852MB) | ⛔ 空きを大きく超える |
| medium(2.1GB) | ⛔ 物理メモリを超える |
| large(3.9GB) | ⛔ 論外 |
⚠️ スワップがあれば「動く」ことはありますが、モデルの重みをディスクに退避しながら推論することになるので、実用的な速度にはなりません。手元の環境には 4GB のスワップがありますが、これは落ちないための保険であって、足りないメモリを補う手段ではありません。
量子化という手
whisper.cpp は整数量子化に対応しています(Q5_0 などの例が公式に記載)。必要メモリを下げられるので、small を 1GB の箱に載せたいなら最初に検討する手です。精度とのトレードオフになるので、自分の音源で比較してください。
前処理は 16bit WAV / 16kHz
入力の要件
公式には 16-bit WAV files のみ対応と明記されています。MP3 や M4A をそのまま渡しても通りません。
$ ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
-ar 16000(サンプリングレート 16kHz)、-ac 1(モノラル)、-c:a pcm_s16le(16bit PCM)。この 3 つを揃えるのが定番です。
ffmpeg のメモリにも注意
長時間の音源を変換するとき、ffmpeg 自体もメモリを使います。推論と変換を同時に走らせないようにしてください。1GB の環境では、順番に実行するだけで安定します。
長い音源は分割する
数時間の音源を 1 ファイルで投げると、途中で落ちたときに全部やり直しになります。10 分程度に切ってから順に処理するほうが、失敗したときの被害が小さく済みます。
CPU で足りないときの選択肢
3 つの方向
| 方法 | コスト構造 | 向く場面 |
|---|---|---|
| 上位プランに変更 | 月額(例:4GB なら月 3,520 円) | 常時使う |
| GPU を秒課金で借りる | 時間単位(V100 で 1 時間 57.6 円) | まとめて処理する |
| 文字起こし API を使う | 音声の長さ単位 | 件数が少ない |
まとめて処理するなら GPU が合理的
文字起こしは溜めてから一気に処理できるタイプの仕事です。秒課金の GPU とは相性がよく、さくらの高火力 DOK なら V100 が 1 時間 57.6 円(2026年8月16日時点・税込)。処理が終わったら止めれば、そこで課金も止まります。
⚠️ 止め忘れが最大のリスクです。V100 を常時起動すると月 41,472 円になります。GPU の価格感はこちらの記事にまとめています。
常時使うなら上位プラン
毎日決まった量を処理するなら、VPS のメモリを増やすほうが管理は簡単です。さくらの VPS なら 4GB プランが月 3,520 円(税込・2026年8月16日時点)。medium(約 2.1GB)が載る最小の構成になります。
よくある質問
Q1. GPU が無い VPS でも文字起こしできますか?
結論:できます。whisper.cpp は依存関係のない C/C++ 実装で、CPU だけで動きます。手元の環境にも GPU は載っていませんが(nvidia-smi 未インストール)、文字起こしは成立します。画像生成との決定的な違いです。
Q2. メモリ 1GB でどのモデルまで使えますか?
結論:tiny(約 273MB)と base(約 388MB)です。手元の環境の空きメモリは 468MB でした。small は約 852MB 必要なので、物理メモリ 958MB の箱ではほぼ全部を占めることになり現実的ではありません。
Q3. スワップがあれば大きいモデルも動きますか?
結論:動くことはありますが、実用的な速度になりません。モデルの重みをディスクに退避しながら推論することになります。スワップは落ちないための保険であって、足りないメモリを補う手段ではありません。
Q4. MP3 をそのまま渡せますか?
結論:渡せません。16bit の WAV のみ対応です。ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav で、16kHz・モノラル・16bit PCM に変換してから渡してください。
Q5. 精度を上げたいのですが
結論:量子化した大きいモデルを試してください。whisper.cpp は整数量子化に対応しているので、small クラスを 1GB の箱に載せられる可能性があります。精度とのトレードオフになるので、自分の音源で比較するのが確実です。
Q6. まとめて大量に処理したいときは?
結論:秒課金の GPU が合理的です。文字起こしは溜めてから一気に処理できるので、さくらの高火力 DOK なら V100 が 1 時間 57.6 円(2026年8月16日時点・税込)。処理が終われば課金も止まります。止め忘れると常時稼働で月 41,472 円になる点だけ注意してください。
まとめ
文字起こしは、GPU が無い VPS でも成立する数少ない用途です。判断の軸はメモリだけと言っていいくらい、はっきりしています。
- 🎯 1GB の VPS → tiny(273MB)と base(388MB)。small 以上は載らない
- 🎯 前処理 → 16bit WAV / 16kHz / モノラル に変換してから渡す
- 🎯 大量処理 → 秒課金の GPU(V100 で 1 時間 57.6 円)。⛔ 止め忘れ厳禁
数値は 2026年8月16日時点の公式記載と、同日に運用中の VPS から採取した実測値です。メモリが足りないときの対処はスワップの追加、GPU の価格感は画像生成を VPS でやる話、常駐化はsystemd のユニットファイルにまとめています。
