librosa/core/audio.py
def __audioread_load(path, offset, duration, dtype):
    '''Load an audio buffer using audioread.

    This loads one block at a time, and then concatenates the results.
    '''

    y = []
    with audioread.audio_open(path) as input_file:
        sr_native = input_file.samplerate
        n_channels = input_file.channels

        s_start = int(np.round(sr_native * offset)) * n_channels

        if duration is None:
            s_end = np.inf
        else:
            s_end = s_start + (int(np.round(sr_native * duration))
                               * n_channels)

        n = 0

        for frame in input_file:
            frame = util.buf_to_float(frame, dtype=dtype)
            n_prev = n
            n = n + len(frame)

            if n < s_start:
                # offset is after the current frame
                # keep reading
                continue

            if s_end < n_prev:
                # we're off the end.  stop reading
                break

            if s_end < n:
                # the end is in this frame.  crop.
                frame = frame[:s_end - n_prev]

            if n_prev <= s_start <= n:
                # beginning is in this frame
                frame = frame[(s_start - n_prev):]

            # tack on the current frame
            y.append(frame)

    if y:
        y = np.concatenate(y)
        if n_channels > 1:
            y = y.reshape((-1, n_channels)).T
    else:
        y = np.empty(0, dtype=dtype)

    return y, sr_native
def __audioread_load(path, offset, duration, dtype):
    '''Load an audio buffer using audioread.

    This loads one block at a time, and then concatenates the results.
    '''

    y = []
    with audioread.audio_open(path) as input_file:
        sr_native = input_file.samplerate
        n_channels = input_file.channels

        s_start = int(np.round(sr_native * offset)) * n_channels

        if duration is None:
            s_end = np.inf
        else:
            s_end = s_start + (int(np.round(sr_native * duration))
                               * n_channels)

        n = 0

        for frame in input_file:
            frame = util.buf_to_float(frame, dtype=dtype)
            n_prev = n
            n = n + len(frame)

            if n < s_start:
                # offset is after the current frame
                # keep reading
                continue

            if s_end < n_prev:
                # we're off the end.  stop reading
                break

            if s_end < n:
                # the end is in this frame.  crop.
                frame = frame[:s_end - n_prev]

            if n_prev <= s_start <= n:
                # beginning is in this frame
                frame = frame[(s_start - n_prev):]

            # tack on the current frame
            y.append(frame)

    if y:
        y = np.concatenate(y)
        if n_channels > 1:
            y = y.reshape((-1, n_channels)).T
    else:
        y = np.empty(0, dtype=dtype)

    return y, sr_native
def __audioread_load ( path , offset , duration , dtype ) : y = [ ] with audioread . audio_open ( path ) as input_file : sr_native = input_file . samplerate n_channels = input_file . channels s_start = int ( np . round ( sr_native * offset ) ) * n_channels if duration is None : s_end = np . inf else : s_end = s_start + ( int ( np . round ( sr_native * duration ) ) * n_channels ) n = 0 for frame in input_file : frame = util . buf_to_float ( frame , dtype = dtype ) n_prev = n n = n + len ( frame ) if n < s_start : # offset is after the current frame # keep reading continue if s_end < n_prev : # we're off the end.  stop reading break if s_end < n : # the end is in this frame.  crop. frame = frame [ : s_end - n_prev ] if n_prev <= s_start <= n : # beginning is in this frame frame = frame [ ( s_start - n_prev ) : ] # tack on the current frame y . append ( frame ) if y : y = np . concatenate ( y ) if n_channels > 1 : y = y . reshape ( ( - 1 , n_channels ) ) . T else : y = np . empty ( 0 , dtype = dtype ) return y , sr_native
Load an audio buffer using audioread.

    This loads one block at a time, and then concatenates the results.
Load an audio buffer using audioread .