Subscribe

ターン検出

English

ターン検出(turn detection、end-of-turn detection)は、ユーザーが話し終えたかを判定し、音声エージェントがいつ答えるかを決める部品です。判定が早すぎると相手の話を遮り、遅すぎると沈黙が続きます。カスケード型の音声エージェントはこの判定に専用の部品を使い、全二重のモデルは同じ判定をモデルの中で行います。

無音による判定

いちばん単純な方法は、音声区間検出(VAD)が声を検知しなくなってから、決まった長さの無音を待つものです。人は考えながら文の途中で間を置くので、待ち時間が短いと話を遮り、長いと毎回の返事が遅くなります。人どうしの会話では、話者が交代するときの間は約200ミリ秒が最も多く、1語を話す準備には少なくとも600ミリ秒かかります。そのため聞き手は、相手の話が終わる前に終わりを予測しています。ターン検出は、言葉、抑揚、またはその両方から同じ予測をします。

下のスライダーで待ち時間を動かすと、2回の間がある1つの文で、このトレードオフを確かめられます。

あなたの発話AI が遮る待ち時間返事

待ち時間が 600ms のとき、文の途中で話を遮る回数は1回で、話し終えてから返事が始まるまで 600ms かかります。

間が450msと900msの模式的な例で、実測ではありません。

ターン検出の種類

音声文字起こしを使わず、抑揚や間を含む音そのものを聞きます。データベースに18件あります。
文字起こし進行中の文字起こしを読み、文が完結したかを予測します。先に音声認識が必要です。データベースに4件あります。
音声と文字起こし音と言葉の両方を使います。データベースに3件あります。
音声認識に内蔵ストリーミング音声認識の中には、文字起こしと一緒に話し終わりの合図を返すものがあります。データベースに10件あります。

全二重のモデルは話しながら聞いているので、これらを別の部品として持つ必要がありません。モデルの一覧で「Full-duplex」に絞ると確かめられます。

測り方

次の2つの公開ベンチマークは、すべてのシステムを同じテストセットで採点します。そのため、下の各表の中では数値を比べられます。

TurnBench は、人手でラベルを付けた2人の会話30時間を使い、話し終わりと割り込みの検出を採点します。誤検出が15%以下であることを条件に、実際の話し終わりをどれだけ捉えたか(Recall)で順位を付け、遅延の中央値も併せて示します。誤検出とは、ユーザーがまだ話し終えていないのに話し終わりと判定することです。

LiveKit の eot-bench は、ユーザーの話を遮る割合を5%以下に調整したとき、話し終わりからどれだけ待つかを示します。短いほど良い結果です。

eot-bench は LiveKit が運営し、自社の検出器も順位に含めています。他のテストセットでの数値は、各コンポーネントのページにあります。

TurnBench の結果

2026-11-08に TurnBench のリーダーボードから読み取った、話し終わりの結果です。誤検出の上限を超えたシステムは最後に並べています。

捉えた話し終わり
0.30.40.50.60.70.80.91.005001000
遅延(中央値) (ms)

話し終わりを最も多く捉えたのは turn-1-mini(97.5%、595ms)、最も速いのは Voice Activity Projection (VAP)(368ms、84.5%)です。 点にマウスを重ねるか Tab キーで選ぶと、数値が出ます。点を押すとコンポーネントのページを開きます。

誤検出の上限以内上限を超過(順位の対象外)左上ほど良い結果

コンポーネントライセンス捉えた話し終わり誤検出遅延の中央値
Apache-2.097.5%7.5%595 ms
Echo Omni DuplexZero Runtime
Proprietary97.0%7.2%768 ms
VoxTurnUniversity of Melbourne
CC-BY-NC-4.092.4%7.6%557 ms
Voice Activity Projection (VAP)KTH (Ekstedt and Skantze)
Permissive84.5%5.5%368 ms
Echo OmniZero Runtime
Proprietary83.9%7.1%676 ms
CC-BY-4.082.6%7.8%862 ms
Mimi EndpointerSathvik Udupa et al.
CC-BY-4.078.2%7.8%645 ms
Permissive77.3%5.9%1007 ms
BSD-2-Clause75.2%4.7%1017 ms
Proprietary30.3%1.8%793 ms

eot-bench の結果

英語の検証用データでの結果で、2026-11-08に eot-bench のリポジトリから読み取りました。2つの表はテストセットも指標も違うので、表をまたいで比べることはできません。

コンポーネントライセンス話し終えてからの待ち時間
Custom terms543 ms
Proprietary647 ms
UltraVADUltravox
Custom terms899 ms
Proprietary1049 ms
BSD-2-Clause1051 ms
Proprietary1056 ms
Voice Activity Projection (VAP)KTH (Ekstedt and Skantze)
Permissive1131 ms
Proprietary1143 ms
Proprietary1151 ms

選ぶときの観点

動かす場所。公開された重みは手元の CPU や GPU で動きます。API では通信の往復が加わり、SDK は商用ライセンスが前提です。データベースのターン検出25件のうち、21件は重みが公開されています。

言語。ユーザーの言語に対応しているかを確かめてください。開発元が日本語を対応言語に挙げているものは9件です。各コンポーネントのページに、開発元が挙げている対応言語を載せています。

ライセンス。公開モデルの中には、非商用に限るものがあります。使う前にライセンスの列を確かめてください。

組み込み先。9件のターン検出は、LiveKit Agents や Pipecat などのエージェント用フレームワークとの連携を案内しています。各コンポーネントのページに、開発元が案内している連携先を載せています。

25件のターン検出と、その周りの VAD、割り込み検出、音声認識は Components で比べられます。詳しく(英語): The full-duplex threshold

よくある質問

VAD だけで足りますか?
VAD(音声区間検出)は誰かが話しているかを判定するもので、話し終えたかは判定しません。VAD だけを使う場合は無音の待ち時間が必要になり、間を置いた人の話を遮るか、毎回の返事が遅くなります。VAD とターン検出を組み合わせる構成も多くあります。
全二重のモデルにもターン検出は必要ですか?
多くの場合、必要ありません。全二重のモデルは話しながら聞き続け、いつ話すかをモデルの中で決めます。専用のターン検出は、音声認識、言語モデル、音声合成を順に動かすカスケード向けの部品です。
日本語に対応したターン検出はありますか?
データベースのターン検出25件のうち、開発元が日本語を対応言語に挙げているものは9件です(Smart Turn v3.2、LiveKit Turn Detector v1、LiveKit text turn detector、Krisp VIVA Turn Prediction v3、Namo Turn Detector v1、UltraVAD、VoxTurn、Echo Omni、MaAI)。
重みが公開されたターン検出はいくつありますか?
データベースのターン検出25件のうち、21件は重みをダウンロードできます。Components で「Open weights」に絞ると一覧できます。

更新日