Silero v6.2 checkpoint causes false speech detection and agent self-interruption in WebRTC voice session
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- python
調査の方向性
Start by tracing how the Silero VAD plugin selects its bundled checkpoint and handles the existing onnx_file_path option. Reproduce the reported A/B/A comparison in a WebRTC voice session, testing both short-utterance detection and false positives during agent playback. Done means the checkpoint tradeoff is understood and a regression test or other fix prevents phantom speech and self-interruption without losing short-utterance detection.
索引モデルが issue の本文から書いたものです。
説明
Bug Description
We found a reproducible regression after the Silero VAD checkpoint change from the previous checkpoint to the v6.2 checkpoint.
Environment
livekit-agents==1.6.10livekit-plugins-silero==1.6.10livekit-plugins-openai==1.6.10- WebRTC browser voice session
- Silero VAD used for turn detection/interruption
Checkpoints tested
Previous checkpoint:
597d30b3ec076608d059477bb14cfeffdf951bf5cae370d38f65d33bbfe82004
Current bundled checkpoint:
1a153a22f4509e292a94e67d6f9b85e8deb25b4988682b7e174c65279d8788e3
The second hash is the checkpoint introduced by livekit/agents#6816.
Observed behavior
With the current bundled 1a153a22... checkpoint, the VAD can detect user speech while the agent itself is speaking, even when the user remains silent.
This can lead to:
- user state changing from listening to speaking during agent playback
- STT receiving an audio segment despite no intentional user speech
- phantom transcripts such as
"Thank you." - the assistant response being marked
interrupted=True - the assistant stopping its own response
- cascading phantom turns
Example sequence from one test:
agent: thinking -> speaking
user: listening -> speaking
STT final: "Thank you."
agent: speaking -> listening
assistant conversation item: interrupted=True
user conversation item: "Thank you."
In another occurrence the user-speaking state was triggered approximately 467 ms after agent speech began, followed by a phantom "Thank you." STT result and interruption of the assistant response.
Controlled A/B/A test
We changed only the ONNX checkpoint while keeping the same:
- LiveKit Agents version
- Silero plugin version
- STT
- TTS
- LLM
- browser/client
- microphone/audio path
- agent turn-handling configuration
Results:
Current bundled checkpoint 1a153a22...
FAIL
false speech detection / phantom STT / self interruption
Previous checkpoint 597d30b3...
PASS
three independent sessions completed without false user-speech
detection during assistant playback
Current bundled checkpoint 1a153a22...
FAIL AGAIN
false speech detection / phantom STT / self interruption reproduced
The reverse test reproduced the problem immediately after restoring the current bundled checkpoint.
Workaround
Using the existing onnx_file_path option resolves the issue:
vad=silero.VAD.load(
force_cpu=True,
onnx_file_path="/path/to/pinned/silero_vad.onnx",
)
where that file has SHA256:
597d30b3ec076608d059477bb14cfeffdf951bf5cae370d38f65d33bbfe82004
This allows us to keep LiveKit Agents and the Silero plugin at 1.6.10 while using the previous checkpoint.
Related upstream history
livekit/agents#6815 reported that the older checkpoint could miss short utterances.
livekit/agents#6816 therefore changed the plugin checkpoint from 597d30b3... to 1a153a22... to improve short-utterance sensitivity.
The increased sensitivity appears to have the opposite failure mode in our WebRTC voice path: false-positive speech detection during assistant playback.
Earlier PR #3779 also added onnx_file_path specifically so users could load a previous Silero model.
Possible next steps
It may be useful to test both checkpoints against:
- short utterance detection, and
- false-positive detection during simultaneous agent audio/WebRTC playback.
Potential solutions might include documenting the tradeoff, exposing a checkpoint/version selection option, bundling both validated checkpoints, or adding a regression test for false interruption during assistant speech.
- 主要言語
- Python
- スター
- 14.6k
- フォーク
- 3.9k
- 平均マージ
- 2日 6時間
- マージ済み PR(30日)
- 227
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
livekit/agents のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
ci: unit tests pin Python 3.12 while the package advertises 3.14 support対応中かも @huong8373tt-beep が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
livekit/agents#8231 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
Assistant markup is stripped from chat history when expressive mode is off対応中かも @ShivamSharma43 が 22 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
livekit/agents#7647 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hosts再び着手できるかも @AbarnaaSree が 61 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
livekit/agents#7022 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagation対応中かも @muskan-creates352 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
mllam/neural-lam#848 ·
メンテナーはふだん 2 日以内に返信
-
infra
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
fab-geocommuns/RNB-coeur#1166 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
deepspeedai/DeepSpeed#8951 ·
メンテナーはふだん 2 日以内に返信