MahmoodAnaam commited on
Commit
7f068c8
·
verified ·
1 Parent(s): 303b1ee

Update feature_extraction_msp_audio.py

Browse files
Files changed (1) hide show
  1. feature_extraction_msp_audio.py +17 -17
feature_extraction_msp_audio.py CHANGED
@@ -2,7 +2,7 @@ from pathlib import Path
2
 
3
  import numpy as np
4
  import torch
5
- # from torchcodec.decoders import AudioDecoder
6
  from transformers.feature_extraction_sequence_utils import SequenceFeatureExtractor
7
  from transformers.feature_extraction_utils import BatchFeature
8
  from transformers.utils import PaddingStrategy, TensorType, logging
@@ -52,20 +52,20 @@ class MSPAudioFeatureExtractor(SequenceFeatureExtractor):
52
  normed = [(x - x.mean()) / np.sqrt(x.var() + 1e-7) for x in input_values]
53
  return normed
54
 
55
- # def _load_audio(
56
- # self,
57
- # src: str | Path | bytes | torch.Tensor,
58
- # start_seconds: float = 0.0,
59
- # stop_seconds: float | None = None,
60
- # ) -> np.ndarray:
61
- # """Load audio waveform from file path or bytes as a 1-D numpy array."""
62
- # audio_decoder = AudioDecoder(source=src, sample_rate=self.sampling_rate)
63
- # if stop_seconds is None:
64
- # stop_seconds = audio_decoder.metadata.duration_seconds_from_header
65
- # waveform = audio_decoder.get_samples_played_in_range(
66
- # start_seconds, stop_seconds
67
- # ).data.numpy()
68
- # return waveform.squeeze() # shape: (T,)
69
 
70
  def __call__(
71
  self,
@@ -112,8 +112,8 @@ class MSPAudioFeatureExtractor(SequenceFeatureExtractor):
112
  raw_speech = [raw_speech]
113
 
114
  # Load from file paths or bytes
115
- # if isinstance(raw_speech[0], (str, Path, bytes)):
116
- # raw_speech = [self._load_audio(src) for src in raw_speech]
117
 
118
  encoded = BatchFeature({"input_values": raw_speech})
119
 
 
2
 
3
  import numpy as np
4
  import torch
5
+ from torchcodec.decoders import AudioDecoder
6
  from transformers.feature_extraction_sequence_utils import SequenceFeatureExtractor
7
  from transformers.feature_extraction_utils import BatchFeature
8
  from transformers.utils import PaddingStrategy, TensorType, logging
 
52
  normed = [(x - x.mean()) / np.sqrt(x.var() + 1e-7) for x in input_values]
53
  return normed
54
 
55
+ def _load_audio(
56
+ self,
57
+ src: str | Path | bytes | torch.Tensor,
58
+ start_seconds: float = 0.0,
59
+ stop_seconds: float | None = None,
60
+ ) -> np.ndarray:
61
+ """Load audio waveform from file path or bytes as a 1-D numpy array."""
62
+ audio_decoder = AudioDecoder(source=src, sample_rate=self.sampling_rate)
63
+ if stop_seconds is None:
64
+ stop_seconds = audio_decoder.metadata.duration_seconds_from_header
65
+ waveform = audio_decoder.get_samples_played_in_range(
66
+ start_seconds, stop_seconds
67
+ ).data.numpy()
68
+ return waveform.squeeze() # shape: (T,)
69
 
70
  def __call__(
71
  self,
 
112
  raw_speech = [raw_speech]
113
 
114
  # Load from file paths or bytes
115
+ if isinstance(raw_speech[0], (str, Path, bytes)):
116
+ raw_speech = [self._load_audio(src) for src in raw_speech]
117
 
118
  encoded = BatchFeature({"input_values": raw_speech})
119