@@ -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