Skip to content

Commit 1ca34d3

Browse files
Separate STT provider language from turn detection defaults
1 parent 55c2f7e commit 1ca34d3

5 files changed

Lines changed: 14 additions & 15 deletions

File tree

changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
88

99
### Added
1010

11-
- **Turn detection language** — AgentKit now manages Agora interaction language through `turn_detection.language`, validates it against the supported BCP-47 language list, and sends the default `en-US` when no language is provided.
11+
- **Turn detection language** — AgentKit now manages Agora interaction language through `turn_detection.language`, validates it against the supported BCP-47 language list, and sends the default `en` when no language is provided.
1212
- **Provider parameter parity** — ASR, LLM, MLLM, TTS, and avatar wrappers expose typed provider parameters plus passthrough fields where the generated core supports additional properties.
1313

1414
### Changed

docs/concepts/vendors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ tts = ElevenLabsTTS(
7575

7676
Used with `agent.with_stt()`.
7777

78-
Use `turn_detection.language` for Agora interaction language; it defaults to `en-US`. STT vendor `language` options are serialized under `asr.params` using each provider's own format.
78+
Use `turn_detection.language` for Agora interaction language; it defaults to `en`. STT vendor `language` options are serialized under `asr.params` using each provider's own format.
7979

8080
| Class | Provider | Required Parameters |
8181
|---|---|---|

docs/reference/vendors.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ The SDK also includes named helpers for the remaining Agora-supported LLM provid
318318

319319
## STT Vendors
320320

321-
Use `turn_detection.language` for Agora interaction language; it defaults to `en-US`. Provider-specific language values remain under `asr.params` and may use a different format.
321+
Use `turn_detection.language` for Agora interaction language; it defaults to `en`. Provider-specific language values remain under `asr.params` and may use a different format.
322322

323323
### `SpeechmaticsSTT`
324324

src/agora_agent/agentkit/agent.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ class SessionOptions(typing_extensions.TypedDict, total=False):
221221
"zh-HK",
222222
"zh-TW",
223223
"nl-NL",
224+
"en",
224225
"en-IN",
225226
"en-US",
226227
"fil-PH",
@@ -246,7 +247,7 @@ class SessionOptions(typing_extensions.TypedDict, total=False):
246247
"vi-VN",
247248
]
248249

249-
DEFAULT_TURN_DETECTION_LANGUAGE: TurnDetectionLanguage = "en-US"
250+
DEFAULT_TURN_DETECTION_LANGUAGE: TurnDetectionLanguage = "en"
250251
TURN_DETECTION_LANGUAGE_VALUES: typing.Tuple[TurnDetectionLanguage, ...] = (
251252
"ar-EG",
252253
"ar-JO",
@@ -257,6 +258,7 @@ class SessionOptions(typing_extensions.TypedDict, total=False):
257258
"zh-HK",
258259
"zh-TW",
259260
"nl-NL",
261+
"en",
260262
"en-IN",
261263
"en-US",
262264
"fil-PH",
@@ -963,13 +965,10 @@ def _resolve_asr_config(self) -> typing.Dict[str, typing.Any]:
963965
return asr_config
964966

965967
def _resolve_turn_detection_config(self) -> TurnDetectionConfig:
966-
existing_stt_language = self._stt.get("language") if self._stt is not None else None
967968
existing_turn_detection_language = self._field_value(self._turn_detection, "language")
968969
language = (
969970
existing_turn_detection_language
970971
if existing_turn_detection_language is not None
971-
else existing_stt_language
972-
if _is_turn_detection_language(existing_stt_language)
973972
else DEFAULT_TURN_DETECTION_LANGUAGE
974973
)
975974
language = _validate_turn_detection_language(language)

tests/custom/test_stt_language.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,21 @@ def properties(agent: Agent) -> dict:
3939
)
4040

4141

42-
def test_bcp47_stt_language_sets_turn_detection_language_and_provider_param() -> None:
43-
props = properties(base_agent().with_stt(SpeechmaticsSTT(api_key="stt-key", language="en-US")))
42+
def test_bcp47_stt_language_stays_in_asr_params_and_defaults_turn_detection() -> None:
43+
props = properties(base_agent().with_stt(SpeechmaticsSTT(api_key="stt-key", language="en")))
4444

4545
assert props["asr"]["vendor"] == "speechmatics"
4646
assert "language" not in props["asr"]
47-
assert props["turn_detection"]["language"] == "en-US"
48-
assert props["asr"]["params"]["language"] == "en-US"
47+
assert props["turn_detection"]["language"] == "en"
48+
assert props["asr"]["params"]["language"] == "en"
4949

5050

5151
def test_provider_language_defaults_turn_detection_language_when_not_supported_by_ares() -> None:
5252
props = properties(base_agent().with_stt(SpeechmaticsSTT(api_key="stt-key", language="en")))
5353

5454
assert props["asr"]["vendor"] == "speechmatics"
5555
assert "language" not in props["asr"]
56-
assert props["turn_detection"]["language"] == "en-US"
56+
assert props["turn_detection"]["language"] == "en"
5757
assert props["asr"]["params"]["language"] == "en"
5858

5959

@@ -71,15 +71,15 @@ def test_turn_detection_language_can_differ_from_provider_language() -> None:
7171

7272

7373
def test_invalid_turn_detection_language_is_rejected() -> None:
74-
with pytest.raises(ValueError, match="Invalid interaction language: en"):
75-
properties(Agent(turn_detection=TurnDetectionConfig(language="en"))) # type: ignore[arg-type]
74+
with pytest.raises(ValueError, match="Invalid interaction language: xx"):
75+
properties(Agent(turn_detection=TurnDetectionConfig(language="xx"))) # type: ignore[arg-type]
7676

7777

7878
def test_default_turn_detection_language_is_sent_without_stt() -> None:
7979
props = properties(base_agent())
8080

8181
assert props["asr"] == {"vendor": "ares"}
82-
assert props["turn_detection"] == {"language": "en-US"}
82+
assert props["turn_detection"] == {"language": "en"}
8383

8484

8585
def test_stt_vendor_params_match_documented_shapes() -> None:

0 commit comments

Comments
 (0)