文字起こしにおける音声活動検出(VAD)の仕組み
VAD音声活動検出技術解説

文字起こしにおける音声活動検出(VAD)の仕組み

BMMamane B. MoussaMay 26, 2026Updated July 2, 20261 min read

Summarize this article with:

VADが判断すること

音声活動検出は、短い音声片ごとにひとつの問いに答えます。ここで発話は起きているのか、起きていないのか? この答えによって、どのフレームを文字起こしモデルに渡し、どのフレームを捨てるかが決まります。ここを間違えると、無音部分に幻のテキストが生成されるか、実際の単語の頭が切り取られることになります。

パイプラインにVADが必要な理由

文字起こしモデルは音声を受け取ってテキストを出力します。しかし「誰も話していない」という概念を本来持ち合わせていません。無音、環境ノイズ、保留音楽を入力しても、それでもテキストを生成しようとします。そうするよう学習されているからです。VADは上流に置かれたゲートであり、そもそも何をモデルまで届けるかを決める役割を担っています。

このゲートから、次の3つの具体的な効果が生まれます。

無音でのハルシネーションを防ぐ

Whisper Large-v3には、無音や非発話の音声の間に幻のテキストを生成しがちな傾向があることが、広く記録されています。 モデルはYouTube動画が中心のインターネットデータで学習されたため、音声と「文字起こし可能な発話」を結び付けることを学びました。無音に遭遇すると、学習データで最も多かった「締めのフレーズ」を引き出します。「ご視聴ありがとうございました」や「チャンネル登録をお願いします」といったフレーズが、どちらも含んでいないはずの音声区間のWhisper出力に現れるのです。これは複数の独立した分析でも確認されており、たまに起こるエッジケースではありません。研究者らは、デコーダーの注意ヘッドのごく一部が非発話ハルシネーションの大半を担っていることを突き止めています。

VADは、モデルが目にする前に非発話区間を除去することでこれを防ぎます。受け取っていない無音の上でハルシネーションを起こすことはできないのです。

処理コストを削減する

無音の上で文字起こしモデルを実行するのはタダではありません。受け取ったフレームごとに、モデルはフルのスペクトログラムを処理します。非発話部分が長く続く音声では、それらのフレームをスキップすることで計算量を大幅に節約できます。研究者によれば、ほぼ無音の録音では50〜70%のコスト削減が報告されています。長いポーズのある90分の講義、関連する発話の合間に環境音が入るフィールド録音、オペレーターが保留で待つコールセンターの音声——いずれも、音声全体に占める非発話の割合に比例して恩恵を受けます。

利用件数の少ないケースでは軽微な問題ですが、毎月数千時間を処理する本番環境では、実際のコスト削減レバーになります。

タイムスタンプの土台を改善する

文字起こしモデルが正確な開始時刻を持つクリーンな発話セグメントを受け取ると、単語レベルのタイミングは沈黙にまたがって引き伸ばされるのではなく、実際の音声イベントに固定されます。その結果、信頼性の高い単語タイムスタンプと、より整った字幕出力が得られます。これは精密なカットに依存するワークフローで最も重要になります。字幕生成、トピック別にインデックス化された議事録、映像と組み合わせる書き起こしなどです。

VADの内部動作の仕組み

技術的なアプローチは、単純な信号処理からニューラル推論へと進化してきました。今日でも3世代の手法が使われています。

エネルギーベースのVAD

最も古く、最もシンプルな手法です。各音声フレームのエネルギー(音量)を測定し、閾値を超えるフレームを発話、下回るフレームを無音とラベル付けします。

静かなスタジオでは機能しますが、実際の環境では失敗します。60デシベルの背景ノイズが55デシベルの小さな発話をかき消し、大きな換気扇のうなりがあらゆる場所で誤検出を引き起こします。エネルギーベースのVADは現代の文字起こしパイプラインではほとんど使われませんが、精度よりも計算コストが重視されるリソース制約の強い組み込みシステムでは今も見かけます。

統計的VAD(WebRTC VAD)

素のエネルギーから一歩進んだ手法です。単一のエネルギー閾値の代わりに、フレームごとの複数の音響特徴量(エネルギー、スペクトル形状、ゼロ交差率、ピッチ)に対してガウス混合モデル(GMM)を適合させます。GMMは、そのフレームが学習済みの「発話」分布と「非発話」分布のどちらに一致する確率が高いかを判定します。

GoogleのWebRTCプロジェクトによるオープンソース実装であるWebRTC VADは、この手法を採用しています。サイズは約158KBで、CPU上で30ミリ秒のチャンクを1ミリ秒未満で処理でき、寛容なライセンスで提供されています。精度よりもレイテンシが重要な音声通信パイプライン(ビデオ通話、VoIP)に広く導入されています。

弱点は、GMMが特定の音響条件で学習されている点です。ボーカル入りの音楽、残響の強い部屋での発話、非常にノイズの多い環境では、いずれも誤分類が発生します。Picovoiceのベンチマーク(同社は競合製品を販売しているため、数字は目安として捉えてください)では、WebRTC VADは5%の偽陽性率でおよそ50%の発話検出率にとどまりました。静かな条件ではなく、ノイズの多い条件下での限界を示す結果です。

ニューラルVAD

文字起こしパイプラインにおける現在の標準です。数千時間に及ぶ多数の背景条件のラベル付き音声で小型のニューラルネットワークを学習させ、手作りの特徴量に頼らず生波形またはスペクトログラムから発話を検出することを学ばせます。

Silero VADは、本番の文字起こしパイプラインで最も広く採用されているオープンソースのニューラルVADです。 2020年12月に公開され、2026年までメンテナンスが続けられており(現行バージョンは6.2.1)、PyTorchとONNXを基盤とするアーキテクチャを採用し、モデルサイズは約2MBです。8000Hzと16000Hzのサンプリングレートに対応し、6,000以上の言語にわたるデータで学習され、CPUスレッドあたり1ミリ秒未満で各30ミリ秒のチャンクを処理します。MITライセンスのため、登録もベンダーへの依存も不要です。

同じPicovoiceのベンチマークでは、Sileroは5%の偽陽性率でおよそ87.7%の発話検出率に達し、GMM方式からの大幅な改善を示しました。ニューラルVADは、ボーカル入りの音楽、残響、マイク品質のばらつきを統計的手法よりはるかに上手く扱えますが、単一のモデルですべてのエッジケースを解消できるわけではありません。

VADの種類技術的基盤レイテンシノイズ耐性
エネルギーベース音量閾値1ミリ秒未満レガシーな組み込みシステム
統計的(GMM)スペクトル特徴量へのGMM適合1ミリ秒未満WebRTC VAD(Google)
ニューラル深層ニューラルネットワーク1〜5ミリ秒Silero VAD、独自モデル

WhisperパイプラインにおけるVAD

OpenAIのリファレンス実装のWhisperには、デフォルトで外部VADは含まれていません。モデルには内部的に「no speech」確率トークンが備わっていますが、実運用では信頼性が不十分なため、本番環境では上流に専用のVADパスを追加します。

WhisperXや類似のWhisperラッパーで採用されている典型的なアーキテクチャは、次のように動作します。

  1. 音声をSilero VADまたはPyannoteに通し、発話が有効な時間セグメントのリストを取得します。
  2. 短いギャップ(通常0.5秒以下)で隔てられた隣接セグメントを結合します。
  3. 得られた発話区間を、Whisperの処理ウィンドウ(最大30秒)のサイズに分割します。
  4. 各チャンクをWhisper Large-v3で文字起こしします。
  5. チャンクを連結する前に、タイムスタンプを元のタイムラインに戻します。

この設計は、生の音声をそのままWhisperに渡すよりも明確に信頼性が高くなります。特に、長い無音や環境音を含む録音で効果を発揮します。モデル自体について詳しくは、Whisper Large-v3の仕組みをご覧ください。

CATTの音声アップローダー。アップロード後、音声が文字起こしモデルに届く前にサーバーサイドでVADが実行される
CATTの音声アップローダー。アップロード後、音声が文字起こしモデルに届く前にサーバーサイドでVADが実行される

DeepgramパイプラインにおけるVAD

Deepgram Nova-3は、音声活動検出をエンドツーエンドのモデルパイプラインに直接統合しています。ユーザーが別途VADステージを設定する必要はありません。運用としてはシンプルです。モデルはひとつ、API呼び出しも一度、VADのチューニングも不要です。Nova-3の内蔵VADは、音楽のみやほぼ無音の音声を幻のテキストとして書き起こしてしまうことがあった従来のDeepgramモデルから、特に改善されています。

トレードオフは透明性です。VADの境界判定を文字起こし出力とは別に検証できないため、エッジケースのデバッグは難しくなります。どのフレームが発話と分類されたかを厳密に監査する必要があるワークフローでは、明示的な外部VADの方が望ましいでしょう。大多数のユーザーにとっては、統合型のアプローチがより良いデフォルトです。詳細はDeepgram Nova-3の仕組みで解説しています。

VADにできないこと

期待しすぎる前に知っておきたい3つの限界があります。

VADは話者を識別しません。 発話と非発話を区別するだけです。話者Aも話者Bも、どちらも「発話」とラベル付けされたフレームを生み出します。両者を分離するのは別の問題で、話者ダイアライゼーションの仕組みで解説しています。

VADは発話フレーム内のノイズをきれいにしません。 どのフレームをモデルに渡すかを決めるだけで、フレーム内の音声はそのままです。ノイズの多い録音は、VADで選択されたセグメントの中身もノイズだらけのままです。VADは無音に関連するハルシネーションを防ぎますが、発話区間内の背景ノイズが原因の文字起こしエラーには、別の対処が必要です。

VADは非発話の種類を区別しません。 笑い声、音楽、雑踏の騒音、完全な無音は、いずれも通常「非発話」というラベルになります。これらのカテゴリを分ける専門システムもありますが、文字起こしパイプラインで使われる標準的なVADにはその機能はありません。

文字起こしエラーの原因をより広く俯瞰したい場合は、文字起こしがミスをする理由で、障害モードの全分類を網羅しています。

VADのチューニング:重要な3つのパラメータ

ほとんどのユーザーにとって、VADは意識されない存在です。パイプラインにはデフォルト設定が組み込まれており、通常はそのままで十分です。自社システムに文字起こしを組み込む開発者にとっては、次の3つのパラメータが最も影響を与えます。

感度(発話確率の閾値)。 閾値を高くすると、フレームを発話ありとラベル付けするために、より強い根拠が必要になります。これにより偽陽性(ノイズを発話と判定すること)は減りますが、小さな声や息混じりの発話を落とすリスクがあります。閾値を低くすると、より多くの発話を拾える反面、ノイズも多く通過します。本番システムでは通常、大規模展開の前に代表的な音声サンプルでこの値を調整します。

最小セグメント長。 設定した長さ(通常250ミリ秒)より短い検出済み発話セグメントを破棄するフィルターです。これがないと、短いクリック音や衝撃音が「発話」セグメントとして文字起こしモデルに渡され、出力に意味のない単語や音節がひとつ混じることになります。

パディング。 多くのVADシステムは、検出された境界の前後に一定量だけ発話セグメントを拡張します。パディングがないと、VADのトリガーが発話開始の数ミリ秒後に発火するため、発話の最初の音素が切り取られがちです。ASR文字起こしでは300ミリ秒のパディングが一般的なデフォルトです。TTS学習パイプラインでは、自然な抑揚を保つため400〜500ミリ秒とさらに長めの値を使います。

これらのパラメータは相互に作用します。高めの感度・短い最小セグメント長・狭いパディングの組み合わせは、除去できる非発話の量を最大化しますが、ときに実際の発話を切り取る代償を払います。逆に寛容な感度と長いパディングは、より多くの発話を保持できますが、より多くのノイズをモデルに通すことになります。

VADが最も効果を発揮する場面

VADの効果は、音声に含まれる非発話の割合に比例して大きくなります。

長いポーズを含む長尺録音が最大の恩恵を受けます。講義、考え込む間のあるポッドキャスト対談、活発なやり取りの一方の話者の音声トラックがほぼ無音になる会議などです。こうした録音は、VADなしで幻のテキストが生成されやすい対象でもあります。Whisperにとって埋めるべき無音が多くなるからです。

ボイスメモや口述筆記も効果があります。「発話・休止・発話」のパターンは最も強いハルシネーションのトリガーだからです。休止中にモデルは足場となる情報を持たないため、何かを生成しようとします。

関連する発話の合間に環境音が入るフィールド録音は、VADなしでは使い物にならないことがよくあります。自然な形で収録された音声では、非発話と発話の比率が非常に高くなり得ます。

私の見解です。普通の部屋でスマートフォンやノートPCから行われる個人ユーザーのアップロードでは、VADは目に見えない配管のようなものです。書き起こしはうまくいくか、あるいはノイズやアクセントによる精度問題を抱えるかのどちらかで、VADはボトルネックになりません。VADの出力への影響がはっきり現れるのは、長尺録音、頻繁に無音が挟まるファイル、持続的な背景音のある環境で録音されたものです。

VAD込みのパイプラインが自分の音声をどう処理するか試してみたい方は、CATTの音声文字起こしツールなら最初の10分を無料で処理できます。他のツールで幻のテキストが出たファイルでぜひ試してみてください。

よくある質問

VADは通常どのフレームサイズを使用しますか?

多くの本番環境のVADシステムは、10〜30ミリ秒単位のチャンクで音声を処理します。フレームが小さいほど発話の開始を早く検出できますが、ノイズの多い環境では誤分類が増えます。フレームが大きいほど正確になりますが、数ミリ秒の検出遅延が加わります。Silero VADは30ミリ秒のチャンクで学習されており、より長いチャンクもネイティブに処理できます。WebRTC VADは10ミリ秒、20ミリ秒、30ミリ秒のモードに対応しており、文字起こしパイプラインでは30ミリ秒が最も一般的に使われています。

VADは発話区間内での文字起こし精度に影響しますか?

いいえ。VADが変えるのは、モデルに渡す音声の範囲であり、モデルがその音声を処理する方法ではありません。特定の発話セグメントに対するモデルの単語誤り率は、そのセグメントを見つけるのにVADが使われたかどうかに左右されません。VADによる精度面のメリットは間接的なものです。無音部分でのハルシネーションを防ぎ、モデルによりクリーンなセグメント境界を提供することにあります。

VADなしでWhisperはなぜ無音部分でハルシネーションを起こすのですか?

Whisperはインターネット由来の音声、主にYouTubeの字幕データで学習されました。YouTube動画は、エンディングや保留音楽、つなぎの音声とともに「ご視聴ありがとうございました」「チャンネル登録をお願いします」といった決まり文句で終わることがよくあります。モデルはこうした非発話の音声パターンとそれらのテキストを結び付けて学習しました。無音や音楽を受け取ると、その連想に基づいて、実際には話されていないテキストを生成してしまうのです。外部VADを使えば、Whisperが無音フレームを目にする前に除去できるため、このトリガー自体を排除できます。

ニューラルVADは常にWebRTC VADより優れていますか?

文字起こしパイプラインにおいては、ほぼすべての場合でイエスです。SileroのようなニューラルVADは、ノイズの多い環境、ボーカル入りの音楽、残響をWebRTCのGMMよりはるかに上手く処理できます。WebRTC VADには計算コストがほぼゼロでフットプリントが小さいという利点があり、レイテンシが厳しく制約され、音声品質が管理されるリアルタイム音声通信アプリケーション(静かな部屋でのビデオ通話など)には良い選択肢です。実環境の音声の文字起こしには、わずかに高いオーバーヘッドを払ってもニューラル方式の価値があります。

出典

Try transcription free

Convert any audio or video to clean, unwatermarked text — speaker labels, timestamps, and AI summaries included. First 10 minutes free, no account.

Related Articles