Spaces:
Configuration error
Configuration error
| package main | |
| // This is a wrapper to statisfy the GRPC service interface | |
| // It is meant to be used by the main executable that is the server for the specific backend type (falcon, gpt3, etc) | |
| import ( | |
| "fmt" | |
| "os" | |
| "path/filepath" | |
| "github.com/mudler/LocalAI/pkg/grpc/base" | |
| pb "github.com/mudler/LocalAI/pkg/grpc/proto" | |
| piper "github.com/mudler/go-piper" | |
| ) | |
| type Piper struct { | |
| base.SingleThread | |
| piper *PiperB | |
| } | |
| func (sd *Piper) Load(opts *pb.ModelOptions) error { | |
| if filepath.Ext(opts.ModelFile) != ".onnx" { | |
| return fmt.Errorf("unsupported model type %s (should end with .onnx)", opts.ModelFile) | |
| } | |
| var err error | |
| // Note: the Model here is a path to a directory containing the model files | |
| sd.piper, err = New(opts.LibrarySearchPath) | |
| return err | |
| } | |
| func (sd *Piper) TTS(opts *pb.TTSRequest) error { | |
| return sd.piper.TTS(opts.Text, opts.Model, opts.Dst) | |
| } | |
| type PiperB struct { | |
| assetDir string | |
| } | |
| func New(assetDir string) (*PiperB, error) { | |
| if _, err := os.Stat(assetDir); err != nil { | |
| return nil, err | |
| } | |
| return &PiperB{ | |
| assetDir: assetDir, | |
| }, nil | |
| } | |
| func (s *PiperB) TTS(text, model, dst string) error { | |
| return piper.TextToWav(text, model, s.assetDir, "", dst) | |
| } | |