Fullduplex
Subscribe

ターン検出

English

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

無音による判定

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

ターン検出の種類

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

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

測り方

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

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

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

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

TurnBench の結果

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

コンポーネントライセンスRecall誤検出率遅延(中央値)
Apache-2.00.9750.075595 ms
Echo Omni DuplexZero Runtime
Proprietary0.9700.072768 ms
VoxTurnUniversity of Melbourne
CC-BY-NC-4.00.9240.076557 ms
Voice Activity Projection (VAP)KTH (Ekstedt and Skantze)
Permissive0.8450.055368 ms
Echo OmniZero Runtime
Proprietary0.8390.071676 ms
CC-BY-4.00.8260.078862 ms
Mimi EndpointerSathvik Udupa et al.
CC-BY-4.00.7820.078645 ms
Permissive0.7730.0591007 ms
BSD-2-Clause0.7520.0471017 ms
Proprietary0.3030.018793 ms

eot-bench の結果

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

コンポーネントライセンス打ち切り5%での遅延
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」に絞ると一覧できます。