func (s *STFT) DivideFrames(input []float64) [][]float64 {
	numFrames := s.NumFrames(input)
	frames := make([][]float64, numFrames)
	for i := 0; i < numFrames; i++ {
		frames[i] = s.FrameAt(input, i)
	}
	return frames
}
DivideFrames returns overlapping divided frames for STFT.
package stft
import (
	"github.com/mjibson/go-dsp/fft"
	"github.com/r9y9/gossp/window"
)
type STFT struct {
	FrameShift int
	FrameLen   int
	Window     []float64  
}
func New(frameShift, frameLen int) *STFT {
	s := &STFT{
		FrameShift: frameShift,
		FrameLen:   frameLen,
		Window:     window.CreateHanning(frameLen),
	}
	return s
}
func (s *STFT) NumFrames(input []float64) int {
	return int(float64(len(input)-s.FrameLen)/float64(s.FrameShift)) + 1
}