mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2023-11-04 02:52:44 +03:00
* run `go mod tidy` before building examples
Running `make examples` after cloning the repository gives the following
error:
```
...
[100%] Built target whisper
gmake[3]: Leaving directory '/tmp/exp/whisper.cpp/bindings/go/build'
gmake[2]: Leaving directory '/tmp/exp/whisper.cpp/bindings/go/build'
gmake[1]: Leaving directory '/tmp/exp/whisper.cpp/bindings/go/build'
Build example go-model-download
Build example go-whisper
examples/go-whisper/process.go:11:2: missing go.sum entry for module providing package github.com/go-audio/wav (imported by github.com/ggerganov/whisper.cpp/bindings/go/examples/go-whisper); to add:
go get github.com/ggerganov/whisper.cpp/bindings/go/examples/go-whisper
make: *** [Makefile:26: examples/go-whisper] Error 1
```
* remove executable bit from various files
62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
)
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// TYPES
|
|
|
|
type Flags struct {
|
|
*flag.FlagSet
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// LIFECYCLE
|
|
|
|
func NewFlags(name string, args []string) (*Flags, error) {
|
|
flags := &Flags{
|
|
FlagSet: flag.NewFlagSet(name, flag.ContinueOnError),
|
|
}
|
|
|
|
// Register the command line arguments
|
|
registerFlags(flags)
|
|
|
|
// Parse command line
|
|
if err := flags.Parse(args); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
// Return success
|
|
return flags, nil
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// PUBLIC METHODS
|
|
|
|
func (flags *Flags) GetModel() string {
|
|
return flags.Lookup("model").Value.String()
|
|
}
|
|
|
|
func (flags *Flags) GetLanguage() string {
|
|
return flags.Lookup("language").Value.String()
|
|
}
|
|
|
|
func (flags *Flags) IsSpeedup() bool {
|
|
return flags.Lookup("speedup").Value.String() == "true"
|
|
}
|
|
|
|
func (flags *Flags) IsTokens() bool {
|
|
return flags.Lookup("tokens").Value.String() == "true"
|
|
}
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
// PRIVATE METHODS
|
|
|
|
func registerFlags(flag *Flags) {
|
|
flag.String("model", "", "Path to the model file")
|
|
flag.String("language", "", "Language")
|
|
flag.Bool("speedup", false, "Enable speedup")
|
|
flag.Bool("tokens", false, "Display tokens")
|
|
}
|