예제 #1
0
 def __getitem__(self, t):
     df = self._map(t).reset_index()
     s = None
     for f in df['file_path']:
         if s is None:
             s = Signal.from_wav(f)
         else:
             s = join(s, Signal.from_wav(f))
     # further triming
     i0 = int((t.start - df['time'].iloc[0]).seconds * s.fs)
     i1 = i0 + (t.stop - t.start).seconds * s.fs
     #print(i0,i1,i1-i0,s.shape, s[i0:i1].shape, s.fs)
     s = s[i0:i1]
     #s = Signal(s[i0:i1], s.fs)
     t = df['time'].iloc[0] + pd.Timedelta(i0 / s.fs, unit='seconds')
     return s, t
예제 #2
0
class test_wav():
    """Test writing to and reading from wav file."""

    duration = 5.0
    fs = 10025
    samples = int(fs * duration)
    channels = 3

    signal = Signal(np.random.randn(channels, samples), fs)

    with tempfile.TemporaryFile() as file:
        signal.to_wav(file)
        signal = Signal.from_wav(file)
        assert signal.samples == samples
        assert signal.fs == fs
        assert signal.channels == channels
예제 #3
0
def load_signal(filename):
    path = os.path.join(args.source, filename)
    signal = Signal.from_wav(path)
    _, event, _, kind, part = os.path.splitext(filename)[0].split('-')
    aircraft = event.split('_')[-1]
    return {'aircraft': aircraft, 'kind': kind, 'part': part, 'signal': signal}