func New(modelPath string, keywords ...*Keyword) (Porcupine, error) {
	if len(keywords) == 0 {
		return nil, errors.New("expected at least one keyword")
	}
	if len(keywords) == 1 {
		return NewSingleKeywordHandle(modelPath, keywords[0])
	}
	return NewMultipleKeywordHandle(modelPath, keywords...)
}
New creates a single or multiple keyword processing Porcupine instance
package porcupine
import "C"
import (
	"errors"
	"fmt"
	"sync"
	"unsafe"
)
const maxKeywords = 128
var (
	ErrOutOfMemory = errors.New("porcupine: out of memory")
	ErrIOError = errors.New("porcupine: IO error")
	ErrInvalidArgument = errors.New("porcupine: invalid argument")
	ErrUnknownStatus = errors.New("unknown status code")
)
func SampleRate() int {
	tmp := C.pv_sample_rate()
	return int(tmp)
}
func FrameLength() int {
	tmp := C.pv_porcupine_frame_length()
	return int(tmp)
}
type Porcupine interface {
	Process(frame []int16) (string, error)
	Close()
}