diff --git a/src/lerobot/datasets/audio_utils.py b/src/lerobot/datasets/audio_utils.py index 95bee3f02..1156fa33f 100644 --- a/src/lerobot/datasets/audio_utils.py +++ b/src/lerobot/datasets/audio_utils.py @@ -41,7 +41,7 @@ def decode_audio( audio_path: Path | str, timestamps: list[float], duration: float, - backend: str | None = "torchaudio", + backend: str | None = "torchcodec", ) -> torch.Tensor: """ Decodes audio using the specified backend. @@ -49,7 +49,7 @@ def decode_audio( audio_path (Path): Path to the audio file. timestamps (list[float]): List of (starting) timestamps to extract audio chunks. duration (float): Duration of the audio chunks in seconds. - backend (str, optional): Backend to use for decoding. Defaults to "torchaudio". + backend (str, optional): Backend to use for decoding. Defaults to "torchcodec". Returns: torch.Tensor: Decoded audio chunks. @@ -57,8 +57,7 @@ def decode_audio( Currently supports torchaudio. """ if backend == "torchcodec": - # return decode_audio_torchcodec(audio_path, timestamps, duration) #TODO(CarolinePascal): uncomment this line at next torchcodec release - raise ValueError("torchcodec backend is not available yet.") + return decode_audio_torchcodec(audio_path, timestamps, duration) elif backend == "torchaudio": return decode_audio_torchaudio(audio_path, timestamps, duration) else: diff --git a/src/lerobot/datasets/lerobot_dataset.py b/src/lerobot/datasets/lerobot_dataset.py index 05e6ec5cf..c26bb3c4c 100644 --- a/src/lerobot/datasets/lerobot_dataset.py +++ b/src/lerobot/datasets/lerobot_dataset.py @@ -757,7 +757,7 @@ class LeRobotDataset(torch.utils.data.Dataset): download_audio (bool, optional): Flag to download the audio. Defaults to True. video_backend (str | None, optional): Video backend to use for decoding videos. Defaults to torchcodec when available int the platform; otherwise, defaults to 'pyav'. You can also use the 'pyav' decoder used by Torchvision, which used to be the default option, or 'video_reader' which is another decoder of Torchvision. - audio_backend (str | None, optional): Audio backend to use for decoding audio. Defaults to 'torchaudio'. + audio_backend (str | None, optional): Audio backend to use for decoding audio. Defaults to 'torchcodec'. batch_encoding_size (int, optional): Number of episodes to accumulate before batch encoding videos. Set to 1 for immediate encoding (default), or higher for batched encoding. Defaults to 1. vcodec (str, optional): Video codec for encoding videos during recording. Options: 'h264', 'hevc', @@ -776,7 +776,7 @@ class LeRobotDataset(torch.utils.data.Dataset): self.revision = revision if revision else CODEBASE_VERSION self.video_backend = video_backend if video_backend else get_safe_default_codec() self.audio_backend = ( - audio_backend if audio_backend else "torchaudio" + audio_backend if audio_backend else "torchcodec" ) # Waiting for torchcodec release #TODO(CarolinePascal) self.delta_indices = None self.batch_encoding_size = batch_encoding_size @@ -1950,7 +1950,7 @@ class LeRobotDataset(torch.utils.data.Dataset): obj._recorded_frames = 0 obj._writer_closed_for_reading = False obj.audio_backend = ( - audio_backend if audio_backend is not None else "torchaudio" + audio_backend if audio_backend is not None else "torchcodec" ) # Waiting for torchcodec release #TODO(CarolinePascal) return obj