fix(voice): retain concrete language for turn detection#6531
Open
Oxygen56 wants to merge 1 commit into
Open
Conversation
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6530
Summary
multiandautolanguage-detection modes from replacing the last concrete languageRoot Cause
AudioRecognitionstored every initial STT language value in_last_language. When a multilingual STT provider returned the mode valuemultifor an ambiguous utterance, the turn detector treated it as a concrete language code, could not find a matching threshold, and skipped end-of-turn prediction.The STT event still retains the provider's original language value. Only the language tracked for language-specific turn-detection behavior ignores non-specific detection modes.
Verification
uv run --no-sync pytest tests/test_audio_recognition_turn_detection.py::TestLanguageTracking --audio_eot -q-> 3 passeduv run --no-sync ruff check livekit-agents/livekit/agents/voice/audio_recognition.py tests/test_audio_recognition_turn_detection.py-> passeduv run --no-sync ruff format --check livekit-agents/livekit/agents/voice/audio_recognition.py tests/test_audio_recognition_turn_detection.py-> passeduv run --group typing mypy -p livekit.agents-> passed (205 source files)uv run --no-sync pytest --unit -q-> 1142 passed, 4 skipped before the repository's concurrent-test runner stopped with 9 event-loop errors on Python 3.13Notes for Reviewers
multileaves the tracked language unset and the existing endpointing fallback remains unchanged.