中級 11 分音声

Vosk:リアルタイムの音声認識、オフライン対応 ligne

端的な回答

Vosk(alphacep/vosk-api、Apache 2.0ライセンス、Alpha Cepheiが開発)は、オフラインの音声認識エンジンで、連続的に音声をテキストに変換します。言語ごとに約50MBのポータブルモデルを提供しており、フランス語の軽量モデル vosk-model-small-fr-0.22 は41MBです。20言語以上をサポートし、Raspberry Piやスマートフォンで動作しますが、難解な音声に対してWhisperよりも精度が低いため、ボイスコマンドやリアルタイム入力に限定して使用することを推奨します。

Voskは、Alpha Cephei社が開発した、Kaldiエンジンを基盤とするオフライン音声認識エンジンです。非常に軽量で、ストリーミング処理に対応しています。数十MBのモデルを使い、性能が控えめなプロセッサでも、話すそばから文字起こしを行います。文字起こしの品質で大規模モデルに匹敵するわけではありません。Voskは別の役割を担っており、その機能を簡単に代替することはできません。このガイドでは、公式のフランス語モデル二つに関する数値も含め、プロジェクトが公開している数値を詳しく説明したうえで、Whisperと率直に比較します。

著者 Mohamed Meguedmi·更新 2026-09-28·Windows・macOS・Linuxでテスト済み

#Voskが異なるやり方で行うこと

定評のある文字起こしモデルはファイルを処理します。録音全体を渡すと、処理が完了してからテキストを返します。一方、Voskはストリームを処理します。音声を小さな単位で受け取り、発話の進行に合わせて部分的な結果、次いで確定した結果を出力します。ストリーミングAPIにより、遅延はほぼゼロです。プロジェクトの公式紹介ページでも、この「zero-latency response with streaming API」を、モデルのサイズと並ぶ中心的な特徴として説明しています。

このアーキテクチャの違いから、ほかの特徴もすべて説明できます。モデルは非常に小さく、CPU上で容易に実行でき、メモリ使用量はRaspberry Piやエントリーモデルのスマートフォンでも対応できる範囲に収まります。一方、認識が難しい音声やノイズの多い音声では、文字起こしの品質は大規模モデルより劣ります。

#数字で見るVosk:フランス語での数値も含めて

ローカルAIキット

お使いのマシンで、プライベートかつ無料のChatGPTを1時間で構築 — LM Studio、Ollama、Open WebUI、ご自身のドキュメント、クラウド不要。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート

このプロジェクトは、提供する機能を明確に示しています。公式リポジトリでは、「20+ languages and dialects」の音声認識、Python、Java、Node.js、C#、C++、Rust、Go向けのバインディング、そして50 MBの「ポータブル」モデルが案内されています。より高い精度を求める人向けには、はるかに大きなサーバー用モデルも用意されています。すべてApache 2.0ライセンスで公開されており、プロジェクトで利用するオープンソースの依存関係について法務部門に説明する必要がある場合に、有用な裏付けとなります。

公式のフランス語モデル2つ(カタログ alphacephei.com/vosk/models)
モデルサイズ単語エラー率(値が低いほど良い)想定用途
vosk-model-small-fr-0.2241MB23.95(Common Voice)· 19.30(MTEDX)· 27.25(podcasts)Android、iOS、Raspberry Pi
vosk-model-fr-0.221.4 GB14.72(Common Voice)· 11.64(MLS)· 13.10(MTEDX)サーバー、より高い精度

サイズの差(41 MB に対し 1.4 GB)により、精度の差が明確に表れ、テストデータによって単精度から双精度に近づくような誤字率の変化が見られます。これは Vosk の中心的な妥協点であり、数値で示されているように、軽量である一方で誤りの確率が高くなるというものです。限定された語彙を持つ音声コマンドには問題ありませんが、インタビューのテキスト記録には不適切です。公式モデルを超えて、フランスのエディターリナゴーラが運営する LinTO プロジェクトは、Vosk と互換性を持つフランス語モデルを公開しています。フランス語プロジェクトにおいて複数のソースを比較し選定する際の重要な参考となります。

4つのテストセット(Common Voice、MTEDX、ポッドキャスト、MLS)の詳細は、そのまま受け取るべき単なるランキングではなく、方法論上の警告として読む価値があります。同じモデルでも、テストセットによって単語エラー率が2倍近く変動し、軽量版ではMTEDXで19.30、ポッドキャストで27.25となっています。スタジオで録音されたクリアな音声と、環境騒音の中で録音された会話では、どのモデルを選んでも品質が異なります。これは、製品仕様書に記載されている単一の平均値に頼るのではなく、実際の使用状況を反映した録音でテストすべき理由の一つです。

#リアルタイム処理こそ真の強み

レイテンシー
話している間、テキストが表示され、これにより音声コマンドやリアルタイムの字幕が可能になります。
部分的な結果
アプリケーションは発話が終わる前に反応できます。ウェイクワードや短いコマンドには欠かせない機能です。
必要容量
フランス語向けの軽量モデルは41 MBなのに対し、サーバー版は1.4 GB、汎用の大規模モデルは数GBになることも多くあります。
語彙が限定されている
認識対象を想定される単語のリストに限定でき、これによりコマンドの認識精度が大幅に向上します。

この点は過小評価されています。アプリケーションを音声で操作する場合、可能となるコマンドを五十個に制限することで、中程度のエンジンを非常に信頼できるものに変えることができます——一方、一般向けの大きなモデルは、類似する発音の間で迷い続けます。これは、公式ドキュメントが「再構成可能な語彙」という機能を、発話者の識別と並んでエンジンの標準機能として挙げていることからも確認できます。この規模のエンジンでは、こうした機能を標準で提供しているものに多くありません。

#VoskまたはWhisper

二つのツール、二つの役割
基準VoskWhisperおよびその派生モデル
モード連続ストリーミングファイル
レイテンシーほぼゼロ(APIストリーミング)処理後
モデルのサイズバリエーションにより41 MB~1.4 GB数百MBから数GB
ハードウェア低スペックプロセッサ、組み込み型十分な性能のプロセッサ、GPUがあると望ましい
認識が難しい音声での精度まずまずの精度、測定済み(WER ≈ 15–28、モデルとテストによって異なる)明らかに優れています
句読点と書式設定限定的良好
選択に適した用途音声コマンド、リアルタイム処理、組み込み用途会議、インタビュー、動画の文字起こし

あらゆる場面で優位に立つものはありません。本格的な処理パイプラインでは、両方を併用することがよくあります。ユーザーが話している間はVoskでコマンドを検出したり、即座にフィードバックを表示したりし、録音が終わって計算リソースが利用可能になったら、Faster-Whisperのようなより重いモデルで、音声により忠実な最終的な文字起こしを生成します。

#優位に立つケース

  1. 01
    アプリケーションの音声コマンド
    制限された語彙、最小限の遅延、ネットワーク依存なし
  2. 02
    リアルタイム字幕
    社内会議、講演、リアルタイムのアクセシビリティ。
  3. 03
    組み込みハードウェア
    ミニコンピューターや単体で動作する機器など、大型モデルが収まらない環境——プロジェクトはRaspberry PiとAndroidを対象として明記しています。
  4. 04
    GPUなしでの厳格なプライバシー保護
    何も外部に送信してはならず、グラフィックスカードも搭載していない普通のパソコン。

この4つのケースには共通点があります。ほぼゼロの遅延と、控えめな性能のハードウェアでも扱えるリソース使用量を得る代わりに、テキストの品質は最高でなくても、十分な水準であれば許容できるという点です。逆に、最高の品質が求められ、数秒の遅延は許容できるという条件になると、Faster-Whisper のようなファイルベースのモデルが再び優位になります。そのため、適切に設計された一連の音声処理システムでは、両者は一方が他方を置き換えるよりも、併用されることが多いのです。

#オーディオフォーマットとテキストのエクスポート

実際には、文字起こしのプロジェクトがエンジンの呼び出しだけで完結することはありません。受け取った入力形式を読み込み、必要に応じて変換したうえで、後続の処理で利用できる形式で結果を書き出す必要があります。また、複数の録音提供元を同時に扱う必要があることもよくあります。上で引用した研究に記載されているパイプラインは、この一連の流れを示しています。Pythonの前処理モジュールで一般的な複数の音声形式(WAV、MP3、FLAC、OGG)を読み込み、VoskのKaldiRecognizerで音声認識を行い、得られたテキストを、読み直しや保存にすぐ使える構造化された文書として書き出します。

この点が重要なのは、Vosk自体が入力として特定の形式の音声ストリーム(モノラルPCM、通常16 kHz)を必要とし、どんなファイルでもそのまま受け付けるわけではないためです。そのため、携帯電話での録音、ビデオ会議からのエクスポート、さまざまな出所の圧縮ファイルなど、多様な音声を扱うプロジェクトでは、ほぼ必ずエンジンに渡す前に変換処理が必要になります。このガイドの前半で述べた、明示的なエラーが出ないまま認識精度が低下する不具合は、エンジン自体よりも、この変換処理に潜んでいることが多いのです。

#言語モデルをカスタマイズする

内部では、Voskの音声認識は、音声認識エンジンKaldiから派生した独自のKaldiRecognizerを利用しています。これにより、新しい言語や分野に対応するたびにゼロから作り直すのではなく、Kaldiのカスタマイズ用ツールのエコシステム全体を継承できるのです。このテーマに関する最近の研究では、カスタマイズしたVoskパイプラインを用いて、用途に合わせた言語モデルの具体的な効果を測定しました。カスタマイズしたモデルは、特に専門用語、強いアクセント、ノイズの多い音声において、単語誤り率を低下させます。

フランス語のプロジェクトでは、これによって、軽量モデルとサーバー用モデルのどちらを選ぶかという選択にとどまらない、具体的な方法が見えてきます。汎用的な語彙だけで済ませるのではなく、業務用の語彙集(製品名、組織内の専門用語、頭字語、地域固有の固有名詞)を言語モデルに組み込む方法です。単にダウンロードするより手間はかかりますが、特定の分野でVoskの運用時の品質を大規模モデルの品質に最も近づけられる手段です。しかも、大規模モデルに伴う計算コストや遅延を負担する必要はありません。

!
入力形式:エラーが表示されない失敗の原因
VoskはモノラルのPCMストリームを入力として想定しており、通常は正確に16 kHzでサンプリングされている必要があります。ステレオファイル、異なるサンプリングレート、変換されていない圧縮形式は、明示的なエラーが一切表示されないまま認識精度を低下させます。症状はモデルの性能が悪いように見えますが、実際の原因は、それより前の変換処理にあります。

#実装

仕組みはシンプルです。パッケージをインストールし(Pythonでは pip install vosk)、必要な言語のモデルをダウンロードします。音声ストリームを開き、音声データを小分けにしてエンジンに送り、途中結果、続いて最終結果を読み取ります。Python、Java、Node.js、C#、C++、Rust、Go向けのバインディングが用意されています。また、WebSocketサーバーを使えば、Webページやモバイルアプリを、お使いのマシン上で動作するエンジンに接続できます。

Vosk をインストールし、フランス語の軽量モデルを取得
pip install vosk
curl -LO https://alphacephei.com/vosk/models/vosk-model-small-fr-0.22.zip
unzip vosk-model-small-fr-0.22.zip

本番環境に移行する前に注意すべき点が2つあります。まず、品質は選択した言語モデルに大きく依存します。上の表は目安を示していますが、それを基に仕組みを構築する前に、ご自身の録音データでテストしてください。次に、音声のサンプリングレートをモデルが想定する値に合わせる必要があります。合っていないと、明確なエラーメッセージが出ないまま認識精度が低下します。

#FAQ

Voskは無料ですか?+
はい。alphacep/vosk-apiリポジトリは、制約が最も少ないオープンライセンスの一つであるApache 2.0で公開されており、ロイヤルティを支払わずに商用利用できます。ただし、ダウンロードする言語モデルそのもののライセンスは確認してください。公式のフランス語モデル2つもApache 2.0ですが、カタログ内の一部のサードパーティ製モデルには独自の条件があります。
グラフィックカードは必要ですか?+
いいえ、そこがこのプロジェクトの魅力です。CPUで動作するように設計されており、Raspberry PiやAndroidスマートフォンなどの組み込み機器でも、約50MBの持ち運び可能なモデルを使って実行できます。公式のフランス語軽量モデルは、正確には41MBです。
Vosk か Whisper か?+
リアルタイム処理、音声コマンド、組み込み用途にはVoskが適しています。ストリーミングAPIにより、遅延はほぼゼロです。ファイルを最高のテキスト品質で文字起こしするなら、WhisperやFaster-Whisperなどの派生ツールが適しています。両者は同じパイプライン内でうまく組み合わせられます。
フランス語にも対応していますか?認識精度はどの程度ですか?+
はい、公式モデルは2つあります。組み込み用途向けの vosk-model-small-fr-0.22(41 MB、単語誤り率はテストによって20〜27%程度)と、サーバー側でより高い精度を得るための vosk-model-fr-0.22(1.4 GB、単語誤り率は12〜14%程度)です。フランスのソフトウェア企業 Linagora の LinTO プロジェクトにも代替モデルがあります。
認識する語彙を制限できますか?+
はい。音声コマンドの認識精度に最も大きく影響する設定です。認識対象を想定されるフレーズのリストに絞ると、信頼性が大幅に向上します。プロジェクトのドキュメントでは、話者識別と並んで、この機能が「再設定可能な語彙」という名称で明示的に説明されています。
組み込み用途のプロジェクトには、どのサイズのモデルを選べばよいですか?+
41 MBの軽量モデル(フランス語用のvosk-model-small-fr-0.22)は、Raspberry PiやAndroid向けの定番であり続けています。1.4 GBのサーバーモデルは、同じテストデータセットで測定した単語誤り率をほぼ半分にします。ただし、より多くのメモリと計算リソースが必要なため、本格的な組み込み環境への導入には使えません。
モデルを変更せずに精度を向上させることは可能ですか?+
はい。モデルのサイズを変える代わりに、プロジェクトの業務用語を使って言語モデルをカスタマイズすることで改善できます。Voskパイプラインを軸とした最近の研究では、この方法によって、特に専門用語、強いアクセント、ノイズの多い音声で単語誤り率が下がり、より大きなモデルに伴う計算コストもかからないことが示されています。
このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。