Silero v6.2 checkpoint causes false speech detection and agent self-interruption in WebRTC voice session
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- audio-video-rtc
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Python
- Estrellas
- 14.6k
- Forks
- 3.9k
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 223
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de livekit/agents
-
Assistant markup is stripped from chat history when expressive mode is offPosiblemente ocupada @ShivamSharma43 la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
livekit/agents#7647 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hostsQuizá libre de nuevo @AbarnaaSree la tomó hace 60 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
livekit/agents#7022 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
Todos los issues de livekit/agents
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
MIT-LCP/wfdb-python#590 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
pollen-robotics/reachy_mini#1517 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
NRLMMD-GEOIPS/pluginify#41 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
scverse/spatialdata#1293 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
UKGovernmentBEIS/inspect_evals#2788 ·
Los mantenedores suelen responder en 1 día