4545# CI cannot currently build with ffmpeg>4, but torchcodec is buggy with ffmpeg4. This hack
4646# allows CI to build with ffmpeg4 and works around load/test bugginess.
4747if "pytest" in sys .modules :
48- from scipy . io import wavfile
48+ from torchaudio . utils import wav_utils
4949 def load (
50- uri : Union [BinaryIO , str , os .PathLike ],
51- frame_offset : int = 0 ,
52- num_frames : int = - 1 ,
50+ uri : str ,
51+ normalize : bool = True ,
5352 channels_first : bool = True ,
54- format : Optional [str ] = None ,
55- buffer_size : int = 4096 ,
56- backend : Optional [str ] = None ,
5753 ) -> Tuple [torch .Tensor , int ]:
58- rate , data = wavfile .read (uri )
59- if data .ndim == 1 :
60- data = data [:,None ]
61- if num_frames == - 1 :
62- num_frames = data .shape [0 ] - frame_offset
63- data = data [frame_offset :frame_offset + num_frames ]
64- if channels_first :
65- data = data .T
66- return data , rate
54+ return wav_utils .load_wav (uri , normalize , channels_first )
6755
6856 def save (
69- uri : Union [ str , os . PathLike ] ,
57+ uri : str ,
7058 src : torch .Tensor ,
7159 sample_rate : int ,
7260 channels_first : bool = True ,
@@ -77,7 +65,7 @@ def save(
7765 backend : Optional [str ] = None ,
7866 compression : Optional [Union [float , int ]] = None ,
7967 ):
80- wavfile . write (uri , sample_rate , src . numpy () )
68+ wav_utils . save_wav (uri , src , sample_rate , channels_first = channels_first )
8169else :
8270 def load (
8371 uri : Union [BinaryIO , str , os .PathLike ],
0 commit comments