Skip to content

Commit 01b87f3

Browse files
committed
change parameter from ns to s
1 parent be27aec commit 01b87f3

File tree

4 files changed

+21
-25
lines changed

4 files changed

+21
-25
lines changed

livekit-agents/livekit/agents/voice/agent_activity.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,9 +1215,7 @@ def on_start_of_speech(self, ev: vad.VADEvent | None) -> None:
12151215
speech_start_time = time.time()
12161216
if ev:
12171217
speech_start_time = speech_start_time - ev.speech_duration
1218-
self._session._update_user_state(
1219-
"speaking", last_speaking_time=int(speech_start_time * 1_000_000_000)
1220-
)
1218+
self._session._update_user_state("speaking", last_speaking_time=speech_start_time)
12211219

12221220
if self._false_interruption_timer:
12231221
# cancel the timer when user starts speaking but leave the paused state unchanged
@@ -1230,7 +1228,7 @@ def on_end_of_speech(self, ev: vad.VADEvent | None) -> None:
12301228
speech_end_time = speech_end_time - ev.silence_duration
12311229
self._session._update_user_state(
12321230
"listening",
1233-
last_speaking_time=int(speech_end_time * 1_000_000_000),
1231+
last_speaking_time=speech_end_time,
12341232
)
12351233

12361234
if (
@@ -1650,9 +1648,7 @@ def _on_first_frame(fut: asyncio.Future[float] | asyncio.Future[None]) -> None:
16501648
except BaseException:
16511649
started_speaking_at = time.time()
16521650

1653-
self._session._update_agent_state(
1654-
"speaking", start_time=int(started_speaking_at * 1_000_000_000)
1655-
)
1651+
self._session._update_agent_state("speaking", start_time=started_speaking_at)
16561652

16571653
audio_out: _AudioOutput | None = None
16581654
tts_gen_data: _TTSGenerationData | None = None
@@ -1922,9 +1918,7 @@ def _on_first_frame(fut: asyncio.Future[float] | asyncio.Future[None]) -> None:
19221918
started_speaking_at = fut.result() or time.time()
19231919
except BaseException:
19241920
started_speaking_at = time.time()
1925-
self._session._update_agent_state(
1926-
"speaking", start_time=int(started_speaking_at * 1_000_000_000)
1927-
)
1921+
self._session._update_agent_state("speaking", start_time=started_speaking_at)
19281922

19291923
audio_out: _AudioOutput | None = None
19301924
if audio_output is not None:
@@ -2273,9 +2267,7 @@ def _on_first_frame(fut: asyncio.Future[float] | asyncio.Future[None]) -> None:
22732267
started_speaking_at = fut.result() or time.time()
22742268
except BaseException:
22752269
started_speaking_at = time.time()
2276-
self._session._update_agent_state(
2277-
"speaking", start_time=int(started_speaking_at * 1_000_000_000)
2278-
)
2270+
self._session._update_agent_state("speaking", start_time=started_speaking_at)
22792271

22802272
tasks: list[asyncio.Task[Any]] = []
22812273
tees: list[utils.aio.itertools.Tee[Any]] = []
@@ -2677,7 +2669,6 @@ def _on_false_interruption() -> None:
26772669
self._session._update_agent_state(
26782670
"speaking",
26792671
otel_context=self._paused_speech._agent_turn_context,
2680-
start_time=time.time_ns(),
26812672
)
26822673
audio_output.resume()
26832674
resumed = True

livekit-agents/livekit/agents/voice/agent_session.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,18 +1165,20 @@ def _update_agent_state(
11651165
state: AgentState,
11661166
*,
11671167
otel_context: otel_context.Context | None = None,
1168-
start_time: int | None = None,
1168+
start_time: float | None = None,
11691169
) -> None:
11701170
if self._agent_state == state:
11711171
return
11721172

1173+
start_time_ns = int(start_time * 1_000_000_000) if start_time else None
1174+
11731175
if state == "speaking":
11741176
self._llm_error_counts = 0
11751177
self._tts_error_counts = 0
11761178

11771179
if self._agent_speaking_span is None:
11781180
self._agent_speaking_span = tracer.start_span(
1179-
"agent_speaking", context=otel_context, start_time=start_time
1181+
"agent_speaking", context=otel_context, start_time=start_time_ns
11801182
)
11811183

11821184
if self._room_io:
@@ -1202,14 +1204,18 @@ def _update_agent_state(
12021204
)
12031205

12041206
def _update_user_state(
1205-
self, state: UserState, *, last_speaking_time: int | None = None
1207+
self, state: UserState, *, last_speaking_time: float | None = None
12061208
) -> None:
12071209
if self._user_state == state:
12081210
return
12091211

1212+
last_speaking_time_ns = (
1213+
int(last_speaking_time * 1_000_000_000) if last_speaking_time else None
1214+
)
1215+
12101216
if state == "speaking" and self._user_speaking_span is None:
12111217
self._user_speaking_span = tracer.start_span(
1212-
"user_speaking", start_time=last_speaking_time
1218+
"user_speaking", start_time=last_speaking_time_ns
12131219
)
12141220

12151221
if self._room_io and self._room_io.linked_participant:
@@ -1221,7 +1227,7 @@ def _update_user_state(
12211227
elif self._user_speaking_span is not None:
12221228
# end_time = last_speaking_time or time.time()
12231229
# self._user_speaking_span.set_attribute(trace_types.ATTR_END_TIME, end_time)
1224-
self._user_speaking_span.end(end_time=last_speaking_time)
1230+
self._user_speaking_span.end(end_time=last_speaking_time_ns)
12251231
self._user_speaking_span = None
12261232

12271233
if state == "listening" and self._agent_state == "listening":

livekit-agents/livekit/agents/voice/audio_recognition.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -471,9 +471,7 @@ async def _on_stt_event(self, ev: stt.SpeechEvent) -> None:
471471
async def _on_vad_event(self, ev: vad.VADEvent) -> None:
472472
if ev.type == vad.VADEventType.START_OF_SPEECH:
473473
with trace.use_span(
474-
self._ensure_user_turn_span(
475-
start_time=int((time.time() - ev.speech_duration) * 1_000_000_000)
476-
)
474+
self._ensure_user_turn_span(start_time=time.time() - ev.speech_duration)
477475
):
478476
self._hooks.on_start_of_speech(ev)
479477

@@ -695,11 +693,12 @@ async def _forward() -> None:
695693
await stream.aclose()
696694

697695
@utils.log_exceptions(logger=logger)
698-
def _ensure_user_turn_span(self, start_time: int | None = None) -> trace.Span:
696+
def _ensure_user_turn_span(self, start_time: float | None = None) -> trace.Span:
699697
if self._user_turn_span and self._user_turn_span.is_recording():
700698
return self._user_turn_span
701699

702-
self._user_turn_span = tracer.start_span("user_turn", start_time=start_time)
700+
start_time_ns = int(start_time * 1_000_000_000) if start_time else None
701+
self._user_turn_span = tracer.start_span("user_turn", start_time=start_time_ns)
703702

704703
if (room_io := self._session._room_io) and room_io.linked_participant:
705704
_set_participant_attributes(self._user_turn_span, room_io.linked_participant)

livekit-agents/livekit/agents/voice/recorder_io/recorder_io.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ async def _forward_task(self) -> None:
126126
assert self._in_record is not None
127127
assert self._out_record is not None
128128

129-
# Forward the input audio to the encoder every 5s.
129+
# Forward the input audio to the encoder every WRITE_INTERVAL seconds.
130130
while True:
131131
await asyncio.sleep(WRITE_INTERVAL)
132132
if self._out_record.has_pending_data:

0 commit comments

Comments
 (0)