AI・機械学習

Whisperで音声の文字起こしをVPSで動かす

Whisperで音声の文字起こしをVPSで動かす
目次
  1. メモリ 1GB の VPS で載るのは tiny と base だけ
  2. Whisper と whisper.cpp
  3. 依存が無いのが強み
  4. Debian 12 の Python 事情を避けられる
  5. GPU が無くても動く
  6. モデルサイズと必要メモリ
  7. 公式の数値
  8. 手元の環境と突き合わせる
  9. 量子化という手
  10. 前処理は 16bit WAV / 16kHz
  11. 入力の要件
  12. ffmpeg のメモリにも注意
  13. 長い音源は分割する
  14. CPU で足りないときの選択肢
  15. 3 つの方向
  16. まとめて処理するなら GPU が合理的
  17. 常時使うなら上位プラン
  18. よくある質問
  19. Q1. GPU が無い VPS でも文字起こしできますか?
  20. Q2. メモリ 1GB でどのモデルまで使えますか?
  21. Q3. スワップがあれば大きいモデルも動きますか?
  22. Q4. MP3 をそのまま渡せますか?
  23. Q5. 精度を上げたいのですが
  24. Q6. まとめて大量に処理したいときは?
  25. まとめ

※本ページには広告(アフィリエイトプログラム等)が含まれます。モデルの数値は 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 のユニットファイルにまとめています。