Skip to content

Commit 763db55

Browse files
committed
elevenlabs: deprecate STT model_id in favor of model
1 parent 8c62cea commit 763db55

3 files changed

Lines changed: 37 additions & 12 deletions

File tree

examples/other/elevenlab_scribe_v2.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ async def entrypoint(ctx: JobContext) -> None:
2525
"min_speech_duration_ms": 100,
2626
"min_silence_duration_ms": 300,
2727
},
28-
model_id="scribe_v2_realtime",
28+
model="scribe_v2_realtime",
2929
)
3030

3131
session: AgentSession = AgentSession(

livekit-plugins/livekit-plugins-elevenlabs/livekit/plugins/elevenlabs/stt.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ def __init__(
9191
server_vad: NotGivenOr[VADOptions] = NOT_GIVEN,
9292
include_timestamps: bool = False,
9393
http_session: aiohttp.ClientSession | None = None,
94-
model_id: NotGivenOr[ElevenLabsSTTModels | str] = NOT_GIVEN,
94+
model: NotGivenOr[ElevenLabsSTTModels | str] = NOT_GIVEN,
95+
model_id: NotGivenOr[ElevenLabsSTTModels | str] = NOT_GIVEN, # Deprecated
9596
keyterms: NotGivenOr[list[str]] = NOT_GIVEN,
9697
no_verbatim: NotGivenOr[bool] = NOT_GIVEN,
9798
enable_logging: bool = True,
@@ -110,8 +111,9 @@ def __init__(
110111
sample_rate (STTRealtimeSampleRates): Audio sample rate in Hz. Default is 16000.
111112
server_vad (NotGivenOr[VADOptions]): Server-side VAD options, only supported for Scribe v2 realtime model.
112113
http_session (aiohttp.ClientSession | None): Custom HTTP session for API requests. Optional.
113-
model_id (ElevenLabsSTTModels | str): ElevenLabs STT model to use. If not specified a default model will
114+
model (ElevenLabsSTTModels | str): ElevenLabs STT model to use. If not specified a default model will
114115
be selected based on parameters provided.
116+
model_id (ElevenLabsSTTModels | str): Deprecated alias for `model`. Use `model` instead.
115117
keyterms (NotGivenOr[list[str]]): A list of keywords or phrases to bias the transcription towards.
116118
Each keyterm can contain at most 5 words and must be less than 50 characters.
117119
Maximum of 100 keyterms. Only supported for Scribe v2 batch recognition
@@ -123,20 +125,29 @@ def __init__(
123125
mode will be used. Defaults to True.
124126
"""
125127

128+
if is_given(model_id):
129+
if is_given(model):
130+
logger.warning(
131+
"both `model` and `model_id` parameters are provided. `model_id` will be ignored."
132+
)
133+
else:
134+
logger.warning("`model_id` parameter is deprecated, use `model` instead.")
135+
model = model_id
136+
126137
if is_given(use_realtime):
127-
if is_given(model_id):
138+
if is_given(model):
128139
logger.warning(
129-
"both `use_realtime` and `model_id` parameters are provided. `use_realtime` will be ignored."
140+
"both `use_realtime` and `model` parameters are provided. `use_realtime` will be ignored."
130141
)
131142
else:
132143
logger.warning(
133144
"`use_realtime` parameter is deprecated. "
134-
"Specify a realtime model_id to enable streaming. "
135-
"Defaulting model_id to one based on use_realtime parameter. "
145+
"Specify a realtime model to enable streaming. "
146+
"Defaulting model to one based on use_realtime parameter. "
136147
)
137-
model_id = "scribe_v2_realtime" if use_realtime else "scribe_v1"
138-
model_id = model_id if is_given(model_id) else "scribe_v1"
139-
use_realtime = model_id == "scribe_v2_realtime"
148+
model = "scribe_v2_realtime" if use_realtime else "scribe_v1"
149+
model = model if is_given(model) else "scribe_v1"
150+
use_realtime = model == "scribe_v2_realtime"
140151

141152
if not use_realtime and is_given(server_vad):
142153
logger.warning("Server-side VAD is only supported for Scribe v2 realtime model")
@@ -164,7 +175,7 @@ def __init__(
164175
sample_rate=sample_rate,
165176
server_vad=server_vad,
166177
include_timestamps=include_timestamps,
167-
model_id=model_id,
178+
model_id=model,
168179
keyterms=keyterms,
169180
no_verbatim=no_verbatim if is_given(no_verbatim) else False,
170181
enable_logging=enable_logging,

tests/test_plugin_elevenlabs_stt.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,21 @@ def test_manual_commit_still_waits_for_empty_commit() -> None:
8585

8686

8787
def _stt(**kwargs: object) -> elevenlabs_stt.STT:
88-
return elevenlabs_stt.STT(api_key="test-key", model_id="scribe_v2_realtime", **kwargs)
88+
return elevenlabs_stt.STT(api_key="test-key", model="scribe_v2_realtime", **kwargs)
89+
90+
91+
def test_model_sets_model() -> None:
92+
assert _stt()._opts.model_id == "scribe_v2_realtime"
93+
94+
95+
def test_deprecated_model_id_still_sets_model() -> None:
96+
instance = elevenlabs_stt.STT(api_key="test-key", model_id="scribe_v2_realtime")
97+
assert instance._opts.model_id == "scribe_v2_realtime"
98+
99+
100+
def test_model_takes_precedence_over_model_id() -> None:
101+
instance = elevenlabs_stt.STT(api_key="test-key", model="scribe_v1", model_id="scribe_v2")
102+
assert instance._opts.model_id == "scribe_v1"
89103

90104

91105
def test_no_verbatim_defaults_to_false() -> None:

0 commit comments

Comments
 (0)