VWork バイブコーディングフレームワーク

whisper.cppで日本語の文字起こしを自社サーバーで動かす——使い方と実測(47秒の会議音声を27秒・文字誤り率2.7%)、AI議事録まで自動化する構成

会議の録音を文字に起こしたい。ただし録音を外部のクラウドに送りたくない、分単位の課金も避けたい。そういう会社向けに、OpenAI の音声認識モデル Whisper を C++ に移植した whisper.cpp を自社サーバーで動かし、日本語の文字起こしがどのくらいの速さと精度で動くかを実測しました。当社の買い切り製品 Kurage AI MOM(録音→文字起こし→AI議事録)は、この構成をそのまま製品にしたものです。

結論を先に書きます。

Whisper と whisper.cpp の違い

Whisper(MIT・GitHubスター約108,000)は OpenAI が公開した音声認識モデルで、日本語を含む約100言語に対応します。本家は Python+PyTorch で、GPU があれば large モデルでも速く動きます。

whisper.cpp(MIT・約53,000)は同じモデルを C/C++ で動かす実装です。PyTorch も GPU も要らず、依存が少ないので、Linux サーバーに常駐させて「録音を受け取ったら文字起こしする」サービスにしやすい。当社が製品に採用したのはこちらです。精度は同じモデルなら大きく変わりません。

使い方(Linux・CPU)

  1. ビルドと、モデルのダウンロード
git clone https://github.com/ggml-org/whisper.cpp
cd whisper.cpp && cmake -B build && cmake --build build -j
sh ./models/download-ggml-model.sh large-v3-turbo   # 約1.6GB
  1. 音声を 16kHz・モノラルの WAV にそろえる(whisper.cpp はこの形式を前提にします)
ffmpeg -i meeting.m4a -ar 16000 -ac 1 -c:a pcm_s16le meeting16k.wav
  1. 日本語を指定して実行する(-t はスレッド数、-nt はタイムスタンプ無し)
./build/bin/whisper-cli -m models/ggml-large-v3-turbo.bin -l ja -t 12 -nt -f meeting16k.wav

これだけで本文が標準出力に出ます。会議の録音は長いので、当社の製品では前段に VAD(無音区間の検出、silero)を入れて、無音を飛ばしてから認識しています。

実測

音声は、当社の TTS(Audio8)で読み上げた 278文字の「定例会議」の原稿(47.4秒)です。原稿があるので、認識結果との文字単位の差分から誤り率を出せます。実際の会議録音は雑音や複数話者で条件が悪くなるので、ここでの数字は「静かな環境・1話者」の上限値として読んでください。

サーバーは当社の Linux 機(CPU 12スレッド・GPU は使わず)です。

モデル・条件 処理時間(47.4秒の音声) 文字誤り率(数字の表記ゆれを除く) 実質の誤り
large-v3-turbo+VAD(製品の設定) 27.1秒 2.7% 3か所
large-v3-turbo(VAD なし) 20.1秒 6.2% 4か所
small 5.8秒 56.4% 文の半分を欠落

誤り率の計算では、「十二件」と「12件」のような数字の表記ゆれは誤りに数えていません。素の差分では 13.2% になりますが、その大半がこの表記ゆれでした。文字起こしの結果はアラビア数字で返るので、原稿側を揃えて比べています。

実質の誤りは次の3か所です。

固有名詞と、文脈で決まる語を取り違える、という Whisper に共通の傾向です。逆に、数字・件数・日付のような「会議で大事な値」は、日付の1か所を除いてすべて正しく取れました。

誤りをどう吸収するか

文字起こしをそのまま議事録にはしません。当社の製品では、次の2段を後ろに置いています。

  1. AI 要約(ローカル LLM・gemma4)に、文字起こし全文と「決定事項・宿題・期日」を抜く指示を渡す。「新書」のような誤りは文脈で「進捗」と読み直されることが多い
  2. 用語辞書で、社名・製品名・担当者名を置換する。固有名詞は文字起こし側で直らないので、会社ごとに辞書を持つのが確実

この2段を入れると、上の3か所の誤りは議事録の段階では消えていました。

サーバーに常駐させる構成

製品の構成はこうです。

録音を外に出さずに済むこと、分単位の課金が無いこと、この2つが自社サーバーで動かす理由です。GPU が無くても、47秒の音声が27秒で終わる速さなら、1時間の会議は35分ほどで文字になります。

まとめ

同じ構成を買い切りで提供しているのが Kurage AI MOM(税込55,000円) です。文字起こし AI のオープンソースを実測つきで比較した一覧は 文字起こしAIのオープンソース一覧・比較 に、whisper.cpp そのものの解説は whisper.cpp の紹介ページ にまとめています。

参考