func SilProbOption(prob float32) Option {
	return func(c *Config) {
		c.opt[String("-silprob")] = prob
	}
}
SilProbOption sets silence word transition probability.

Default: 0.005
package sphinx
import "github.com/xlab/pocketsphinx-go/pocketsphinx"
type Config struct {
	opt       map[String]interface{}
	evaluated *pocketsphinx.CommandLn
}
func NewConfig(opts ...Option) *Config {
	cfg := &Config{
		opt: make(map[String]interface{}, 32),
	}
	for i := range opts {
		opts[i](cfg)
	}
	return cfg
}
func NewConfigRetain(ln *pocketsphinx.CommandLn) *Config {
	return &Config{
		evaluated: pocketsphinx.CommandLnRetain(ln),
	}
}
func (c *Config) Retain() {
	c.evaluated = pocketsphinx.CommandLnRetain(c.evaluated)
}
func (c *Config) CommandLn() *pocketsphinx.CommandLn {
	if c.evaluated != nil {
		return c.evaluated
	}
	defn := pocketsphinx.Args()
	prevLn := pocketsphinx.CommandLnParseR(nil, defn, 0, nil, 0)
	c.evaluated = optToCommandLn(prevLn, c.opt)
	return c.evaluated
}
func (c *Config) Destroy() bool {
	if c.evaluated != nil {
		ret := pocketsphinx.CommandLnFreeR(c.evaluated)
		c.evaluated = nil
		return ret == 0
	}
	return true
}
type Option func(c *Config)
func LogFileOption(filename string) Option {
	return func(c *Config) {
		c.opt[String("-logfn")] = String(filename)
	}
}
func DebugOption(level int) Option {
	return func(c *Config) {
		c.opt[String("-debug")] = level
	}
}
func MFCLogDirOption(dir string) Option {
	return func(c *Config) {
		c.opt[String("-mfclogdir")] = String(dir)
	}
}
func RawLogDirOption(dir string) Option {
	return func(c *Config) {
		c.opt[String("-rawlogdir")] = String(dir)
	}
}
func SenLogDirOption(dir string) Option {
	return func(c *Config) {
		c.opt[String("-senlogdir")] = String(dir)
	}
}
func BeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-beam")] = width
	}
}
func WBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-wbeam")] = width
	}
}
func PBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-pbeam")] = width
	}
}
func LPBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-lpbeam")] = width
	}
}
func LPOnlyBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-lponlybeam")] = width
	}
}
func FwdFlatBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-fwdflatbeam")] = width
	}
}
func FwdFlatWBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-fwdflatwbeam")] = width
	}
}
func PLWindowOption(frames int) Option {
	return func(c *Config) {
		c.opt[String("-pl_window")] = frames
	}
}
func PLBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-pl_beam")] = width
	}
}
func PLPBeamOption(width float64) Option {
	return func(c *Config) {
		c.opt[String("-pl_pbeam")] = width
	}
}
func PipOption(penalty float32) Option {
	return func(c *Config) {
		c.opt[String("-pip")] = penalty
	}
}
func PLWeightOption(weight float64) Option {
	return func(c *Config) {
		c.opt[String("-pl_weight")] = weight
	}
}
func CompAllSenOption(compallsen bool) Option {
	return func(c *Config) {
		c.opt[String("-compallsen")] = compallsen
	}
}
func FwdTreeOption(fwdtree bool) Option {
	return func(c *Config) {
		c.opt[String("-fwdtree")] = fwdtree
	}
}
func FwdFlatOption(fwdflat bool) Option {
	return func(c *Config) {
		c.opt[String("-fwdflat")] = fwdflat
	}
}
func BestpathOption(bestpath bool) Option {
	return func(c *Config) {
		c.opt[String("-bestpath")] = bestpath
	}
}
func BacktraceOption(backtrace bool) Option {
	return func(c *Config) {
		c.opt[String("-backtrace")] = backtrace
	}
}
func LatsizeOption(size int) Option {
	return func(c *Config) {
		c.opt[String("-latsize")] = size
	}
}
func MaxWPFOption(max int) Option {
	return func(c *Config) {
		c.opt[String("-maxwpf")] = max
	}
}
func MaxHMMPFOption(max int) Option {
	return func(c *Config) {
		c.opt[String("-maxhmmpf")] = max
	}
}
func MinEndFrOption(n int) Option {
	return func(c *Config) {
		c.opt[String("-min_endfr")] = n
	}
}
func FwdFlateFWidOption(frames int) Option {
	return func(c *Config) {
		c.opt[String("-fwdflatefwid")] = frames
	}
}
func FwdFlatSfWinOption(frames int) Option {
	return func(c *Config) {
		c.opt[String("-fwdflatsfwin")] = frames
	}
}
func KeyphraseOption(keyphrase string) Option {
	return func(c *Config) {
		c.opt[String("-keyphrase")] = String(keyphrase)
	}
}
func KeywordsFileOption(filename string) Option {
	return func(c *Config) {
		c.opt[String("-kws")] = String(filename)
	}
}
func KeywordsPLPOption(prob float64) Option {
	return func(c *Config) {
		c.opt[String("-kws_plp")] = prob
	}
}
func KeywordsDelayOption(delay int) Option {
	return func(c *Config) {
		c.opt[String("-kws_delay")] = delay
	}
}
func KeywordsThresholdOption(threshold float64) Option {
	return func(c *Config) {
		c.opt[String("-kws_threshold")] = threshold
	}
}
func FiniteStateGrammarsOption(filepath string) Option {
	return func(c *Config) {
		c.opt[String("-fsg")] = String(filepath)
	}
}
func AllPhoneFileOption(filepath string) Option {
	return func(c *Config) {
		c.opt[String("-allphone")] = String(filepath)
	}
}
func AllPhoneCIOption(ciUnitsOnly bool) Option {
	return func(c *Config) {
		c.opt[String("-allphone_ci")] = ciUnitsOnly
	}
}
func LMFileOption(filename string) Option {
	return func(c *Config) {
		c.opt[String("-lm")] = String(filename)
	}
}
func LMSetOption(set string) Option {
	return func(c *Config) {
		c.opt[String("-lmctl")] = String(set)
	}
}
func LMNameOption(name string) Option {
	return func(c *Config) {
		c.opt[String("-lmname")] = String(name)
	}
}
func LWeightOption(weight float32) Option {
	return func(c *Config) {
		c.opt[String("-lw")] = weight
	}
}
func FwdFlatLWeightOption(weight float32) Option {
	return func(c *Config) {
		c.opt[String("-fwdflatlw")] = weight
	}
}
func BestPathLWeightOption(weight float32) Option {
	return func(c *Config) {
		c.opt[String("-bestpathlw")] = weight
	}
}
func AScaleOption(scale float32) Option {
	return func(c *Config) {
		c.opt[String("-ascale")] = scale
	}
}
func WIPenaltyOption(penalty float32) Option {
	return func(c *Config) {
		c.opt[String("-wip")] = penalty
	}
}
func NewWordPenaltyOption(penalty float32) Option {
	return func(c *Config) {
		c.opt[String("-nwpen")] = penalty
	}
}
func PIPenaltyOption(penalty float32) Option {
	return func(c *Config) {
		c.opt[String("-pip")] = penalty
	}
}
func UnigramWeightOption(weight float32) Option {
	return func(c *Config) {
		c.opt[String("-uw")] = weight
	}
}