Skip to content

Commit c2d565b

Browse files
committed
fix: transparent metadata field in asr base class
1 parent f0cb86a commit c2d565b

File tree

1 file changed

+7
-18
lines changed

1 file changed

+7
-18
lines changed

interface/ten_ai_base/asr.py

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def __init__(self, name: str):
4545
self.stopped = False
4646
self.ten_env: AsyncTenEnv = None # type: ignore
4747
self.session_id = None
48+
self.metadata = None
4849
self.finalize_id = None
4950
self.sent_buffer_length = 0
5051
self.buffered_frames = asyncio.Queue[AudioFrame]()
@@ -195,8 +196,8 @@ async def send_asr_result(self, asr_result: ASRResult) -> None:
195196
Send a transcription result as output.
196197
"""
197198
asr_result.id = self.uuid
198-
if self.session_id is not None:
199-
asr_result.metadata[PROPERTY_KEY_SESSION_ID] = self.session_id
199+
if self.metadata is not None:
200+
asr_result.metadata = self.metadata
200201

201202
# If this is the first result and there is a timestamp for the first
202203
# audio sent, calculate and send TTFW.
@@ -227,7 +228,6 @@ async def send_asr_result(self, asr_result: ASRResult) -> None:
227228
if asr_result.final:
228229
self.uuid = self._get_uuid() # Reset UUID for the next final turn
229230

230-
231231
@final
232232
async def send_asr_error(
233233
self, error: ModuleError, vendor_info: ModuleErrorVendorInfo | None = None
@@ -254,11 +254,7 @@ async def send_asr_error(
254254
"code": error.code,
255255
"message": error.message,
256256
"vendor_info": vendorInfo or {},
257-
"metadata": (
258-
{}
259-
if self.session_id is None
260-
else {PROPERTY_KEY_SESSION_ID: self.session_id}
261-
),
257+
"metadata": ({} if self.metadata is None else self.metadata),
262258
}
263259
),
264260
)
@@ -276,11 +272,7 @@ async def send_asr_finalize_end(self) -> None:
276272
json.dumps(
277273
{
278274
"finalize_id": self.finalize_id,
279-
"metadata": (
280-
{}
281-
if self.session_id is None
282-
else {PROPERTY_KEY_SESSION_ID: self.session_id}
283-
),
275+
"metadata": ({} if self.metadata is None else self.metadata),
284276
}
285277
),
286278
)
@@ -341,11 +333,7 @@ async def _send_asr_metrics(self, metrics: ModuleMetrics) -> None:
341333
"module": metrics.module,
342334
"vendor": metrics.vendor,
343335
"metrics": metrics.metrics,
344-
"metadata": (
345-
{}
346-
if self.session_id is None
347-
else {PROPERTY_KEY_SESSION_ID: self.session_id}
348-
),
336+
"metadata": ({} if self.metadata is None else self.metadata),
349337
}
350338
),
351339
)
@@ -409,6 +397,7 @@ async def _handle_audio_frame(
409397
if metadata:
410398
try:
411399
metadata_json = json.loads(metadata)
400+
self.metadata = metadata_json
412401
self.session_id = metadata_json.get(
413402
PROPERTY_KEY_SESSION_ID, self.session_id
414403
)

0 commit comments

Comments
 (0)