From 97e91698fb864bd87e373f764ec7fca38ec8a7d9 Mon Sep 17 00:00:00 2001 From: CarolinePascal Date: Mon, 12 May 2025 15:15:02 +0200 Subject: [PATCH] [skip-ci] fix(online audio chunks): adding missing observation copy when adding audio buffer --- src/lerobot/scripts/lerobot_record.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lerobot/scripts/lerobot_record.py b/src/lerobot/scripts/lerobot_record.py index af0ce34d9..d0d196f0b 100644 --- a/src/lerobot/scripts/lerobot_record.py +++ b/src/lerobot/scripts/lerobot_record.py @@ -64,6 +64,7 @@ lerobot-record \ import logging import time +from copy import copy from dataclasses import asdict, dataclass, field from pathlib import Path from pprint import pformat @@ -361,16 +362,17 @@ def record_loop( # Get action from either policy or teleop if policy is not None and preprocessor is not None and postprocessor is not None: # Transform instantaneous audio samples into a buffer of fixed size + buffered_observation_frame = copy(observation_frame) for name in audio_buffer: # Remove as many old audio samples as needed - audio_buffer[name] = audio_buffer[name][len(observation_frame[name]) :] + audio_buffer[name] = audio_buffer[name][len(buffered_observation_frame[name]) :] # Add new audio samples - audio_buffer[name] = np.vstack((audio_buffer[name], observation_frame[name])) + audio_buffer[name] = np.vstack((audio_buffer[name], buffered_observation_frame[name])) # Add the audio buffer to the observation - observation_frame[name] = audio_buffer[name] + buffered_observation_frame[name] = audio_buffer[name] action_values = predict_action( - observation=observation_frame, + observation=buffered_observation_frame, policy=policy, device=get_safe_torch_device(policy.config.device), preprocessor=preprocessor,