fast-whisperで手軽に文字起こしできるCLIツールを作った
手軽な文字起こしツール
欲しかったので作ってみました。fast-whisperを使用するので、API登録やGPU不要で、一般的なパソコンで動きます。ただ文字起こしにはある程度時間がかかります。
uvを使う想定です。uvに関してはこちらの記事を参照ください。
勢い余ってPyPIにも登録したので、uvがインストールされていれば以下コマンドで文字起こしできます。
$ uvx transcriber_tool transcribe <filename>
テスト用のファイルもリポジトリにアップしているので、以下コマンドを実行すれば一瞬で文字起こしできると思います。
$ curl -o test_audio.mp3 https://raw.githubusercontent.com/karaage0703/transcriber-tool/main/test_audio.mp3
$ uvx transcriber_tool transcribe test_audio.mp3
文字起こし結果はデフォルトだとoutputフォルダにテキストで格納されます(書き出すファイルを指定もできます)。以下書き起こしの結果です。
これはテスト用の音声ファイルです。 文字を越しが正しく機能するかを確認します。
誤字が気になる場合は、largeモデルを選択します。
$ uvx transcriber_tool transcribe -m large test_audio.mp3
書き起こし結果。ばっちりですね。
これはテスト用の音声ファイルです。文字起こしが正しく機能するかを確認します。
他の使い方はリポジトリのREADME参照ください。
文字起こしのMCPサーバ
実は、話題のMCPサーバも作ってみました。
これは便利に違いない!と思って作ってみたのですが、使ってみたら長い音声ファイルを文字起こしすると、そこでスタックしてしまい、タイムアウトになってしまうのであんまり実用的でないなと感じました。
タイムアウト自体は、タイムアウト設定を変えたり、MCPサーバがとりあえずレスポンス返してバックグラウンドで文字起こしするとか、対策のしようはあるのですが、そもそも時間がかかることが多い処理をMCPサーバで実施するのは、あんまり筋がよくないなと感じました。もしLLMと組み合わせて使うなら、普通にtranscriber-toolの使い方を教えて処理してもらうのが効率良いのかなと思いました。
GPU対応(v0.3.0)
v0.3.0でGPU(CUDA)に対応しました。
インストール
x86_64(一般的なPC・サーバー)
特に追加インストールは不要です。faster-whisperが使うctranslate2がCUDA対応しているため、そのままGPUが使えます。
$ uvx transcriber_tool transcribe audio.mp3 --device cuda
ARM64(DGX Spark等)
ARM64ではctranslate2のPyPI版にCUDAビルドがないため、openai-whisper(PyTorchベース)を追加インストールします。
$ uv tool install "transcriber_tool[gpu]" --extra-index-url https://download.pytorch.org/whl/cu130
インストール後は以下コマンドで、GPUを使った文字起こしができます。
$ transcriber_tool transcribe audio.mp3
どれくらい速くなる?
DGX Spark(NVIDIA GB10)で30分の音声ファイル(mediumモデル)を文字起こしした結果です。
| デバイス | 処理時間 |
|---|---|
| CPU | 約20分 |
| GPU (NVIDIA GB10) | 約3分(6.3倍高速) |
長い音声ほどGPUの恩恵が大きくなります。ポッドキャストの文字起こしなど、まとまった長さの音声処理に特に効果的です。
仕組み
--device auto(デフォルト)で環境に応じて最適なバックエンドが自動選択されます。
- ctranslate2がCUDA対応(x86_64)→ faster-whisper (GPU)
- ctranslate2がCPU版のみ(ARM64)→ openai-whisper / PyTorch (GPU) に自動フォールバック
- GPU未検出 → faster-whisper (CPU)
まとめ
文字起こしのCLIツールを作ってみました。以前、DockerでWhisperを使って文字起こしする環境は作ったことあったのですが、結局面倒くさくて使わなくなってしまいました。こちらなら、わりと使い勝手よいのではないかなと思います。
といいつつ、NotebookLMの方が手軽だし、速かったりするんですけどね。
とはいえ、大量のファイルを扱いたいときや動画の音声を文字起こししたいとき、NotebookLMがサービス終了したときなど使い道はあるのじゃないかなと思います。
関連記事
変更履歴
- 2026/03/16 GPU対応に付いて追記
Discussion