ターン検出(turn detection、end-of-turn detection)は、ユーザーが話し終えたかを判定し、音声エージェントがいつ答えるかを決める部品です。判定が早すぎると相手の話を遮り、遅すぎると沈黙が続きます。カスケード型の音声エージェントはこの判定に専用の部品を使い、全二重のモデルは同じ判定をモデルの中で行います。
無音による判定
いちばん単純な方法は、音声区間検出(VAD)が声を検知しなくなってから、決まった長さの無音を待つものです。人は考えながら文の途中で間を置くので、待ち時間が短いと話を遮り、長いと毎回の返事が遅くなります。人どうしの会話では、話者が交代するときの間は約200ミリ秒が最も多く、1語を話す準備には少なくとも600ミリ秒かかります。そのため聞き手は、相手の話が終わる前に終わりを予測しています。ターン検出は、言葉、抑揚、またはその両方から同じ予測をします。
ターン検出の種類
全二重のモデルは話しながら聞いているので、これらを別の部品として持つ必要がありません。モデルの一覧で「Full-duplex」に絞ると確かめられます。
測り方
次の2つの公開ベンチマークは、すべてのシステムを同じテストセットで採点します。そのため、下の各表の中では数値を比べられます。
TurnBench は、人手でラベルを付けた2人の会話30時間を使い、話し終わりと割り込みの検出を採点します。誤検出率が0.15以下であることを条件に、実際の話し終わりをどれだけ捉えたか(Recall)で順位を付け、遅延の中央値も併せて示します。
LiveKit の eot-bench は、ユーザーの話を遮る割合を5%以下に調整したとき、話し終わりからどれだけ待つかを示します。短いほど良い結果です。
このサイトを運営する oto は、TurnBench の共著者です。eot-bench は LiveKit が運営し、自社の検出器も順位に含めています。他のテストセットでの数値は、各コンポーネントのページにあります。
TurnBench の結果
2026-11-08に TurnBench のリーダーボードから読み取った、話し終わりの結果です。誤検出率の上限を超えたシステムは最後に並べています。
| コンポーネント | ライセンス | Recall | 誤検出率 | 遅延(中央値) |
|---|---|---|---|---|
turn-1-minip99lab | Apache-2.0 | 0.975 | 0.075 | 595 ms |
Echo Omni DuplexZero Runtime | Proprietary | 0.970 | 0.072 | 768 ms |
VoxTurnUniversity of Melbourne | CC-BY-NC-4.0 | 0.924 | 0.076 | 557 ms |
Voice Activity Projection (VAP)KTH (Ekstedt and Skantze) | Permissive | 0.845 | 0.055 | 368 ms |
Echo OmniZero Runtime | Proprietary | 0.839 | 0.071 | 676 ms |
ESPnet turn-taking predictionESPnet (CMU) | CC-BY-4.0 | 0.826 | 0.078 | 862 ms |
Mimi EndpointerSathvik Udupa et al. | CC-BY-4.0 | 0.782 | 0.078 | 645 ms |
| Permissive | 0.773 | 0.059 | 1007 ms | |
Smart Turn v3.2Pipecat | BSD-2-Clause | 0.752 | 0.047 | 1017 ms |
| Proprietary | 0.303 | 0.018 | 793 ms |
eot-bench の結果
英語の検証用データでの結果で、2026-11-08に eot-bench のリポジトリから読み取りました。2つの表はテストセットも指標も違うので、表をまたいで比べることはできません。
| コンポーネント | ライセンス | 打ち切り5%での遅延 |
|---|---|---|
| Custom terms | 543 ms | |
Soniox stt-rt-v6Soniox | Proprietary | 647 ms |
| Custom terms | 899 ms | |
| Proprietary | 1049 ms | |
Smart Turn v3.2Pipecat | BSD-2-Clause | 1051 ms |
| Proprietary | 1056 ms | |
Voice Activity Projection (VAP)KTH (Ekstedt and Skantze) | Permissive | 1131 ms |
| Proprietary | 1143 ms | |
| Proprietary | 1151 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」に絞ると一覧できます。