(sig,
             frame_len,
             frame_step,
             winfunc=lambda x: numpy.ones((x,)),
             stride_trick=True)
return frames * win
Frame a signal into overlapping frames.

    :param sig: the audio signal to frame.
    :param frame_len: length of each frame measured in samples.
    :param frame_step: number of samples after the start of the previous frame that the next frame should begin.
    :param winfunc: the analysis window to apply to each frame. By default no window is applied.
    :param stride_trick: use stride trick to compute the rolling window and window multiplication faster
    :returns: an array of frames. Size is NUMFRAMES by frame_len.
Frame a signal into overlapping frames.
Frame a signal into overlapping frames .
def framesig(sig,
             frame_len,
             frame_step,
             winfunc=lambda x: numpy.ones((x,)),
             stride_trick=True):
  """Frame a signal into overlapping frames.

    :param sig: the audio signal to frame.
    :param frame_len: length of each frame measured in samples.
    :param frame_step: number of samples after the start of the previous frame that the next frame should begin.
    :param winfunc: the analysis window to apply to each frame. By default no window is applied.
    :param stride_trick: use stride trick to compute the rolling window and window multiplication faster
    :returns: an array of frames. Size is NUMFRAMES by frame_len.
    """
  slen = len(sig)
  frame_len = int(round_half_up(frame_len))
  frame_step = int(round_half_up(frame_step))
  if slen <= frame_len:
    numframes = 1
  else:
    numframes = 1 + int(math.ceil((1.0 * slen - frame_len) / frame_step))

  padlen = int((numframes - 1) * frame_step + frame_len)

  zeros = numpy.zeros((padlen - slen,))
  padsignal = numpy.concatenate((sig, zeros))
  if stride_trick:
    win = winfunc(frame_len)
    frames = rolling_window(padsignal, window=frame_len, step=frame_step)
  else:
    indices = numpy.tile(numpy.arange(
        0, frame_len), (numframes, 1)) + numpy.tile(
            numpy.arange(0, numframes * frame_step, frame_step),
            (frame_len, 1)).T
    indices = numpy.array(indices, dtype=numpy.int32)
    frames = padsignal[indices]
    win = numpy.tile(winfunc(frame_len), (numframes, 1))

  return frames * win
def framesig ( sig , frame_len , frame_step , winfunc = lambda x : numpy . ones ( ( x , ) ) , stride_trick = True ) : slen = len ( sig ) frame_len = int ( round_half_up ( frame_len ) ) frame_step = int ( round_half_up ( frame_step ) ) if slen <= frame_len : numframes = 1 else : numframes = 1 + int ( math . ceil ( ( 1.0 * slen - frame_len ) / frame_step ) ) padlen = int ( ( numframes - 1 ) * frame_step + frame_len ) zeros = numpy . zeros ( ( padlen - slen , ) ) padsignal = numpy . concatenate ( ( sig , zeros ) ) if stride_trick : win = winfunc ( frame_len ) frames = rolling_window ( padsignal , window = frame_len , step = frame_step ) else : indices = numpy . tile ( numpy . arange ( 0 , frame_len ) , ( numframes , 1 ) ) + numpy . tile ( numpy . arange ( 0 , numframes * frame_step , frame_step ) , ( frame_len , 1 ) ) . T indices = numpy . array ( indices , dtype = numpy . int32 ) frames = padsignal [ indices ] win = numpy . tile ( winfunc ( frame_len ) , ( numframes , 1 ) ) return frames * win