Spaces:
Configuration error
Configuration error
| package backend | |
| import ( | |
| "context" | |
| "fmt" | |
| "os" | |
| "path/filepath" | |
| "github.com/mudler/LocalAI/core/config" | |
| "github.com/mudler/LocalAI/pkg/grpc/proto" | |
| "github.com/mudler/LocalAI/pkg/model" | |
| "github.com/mudler/LocalAI/pkg/utils" | |
| ) | |
| func SoundGeneration( | |
| modelFile string, | |
| text string, | |
| duration *float32, | |
| temperature *float32, | |
| doSample *bool, | |
| sourceFile *string, | |
| sourceDivisor *int32, | |
| loader *model.ModelLoader, | |
| appConfig *config.ApplicationConfig, | |
| backendConfig config.BackendConfig, | |
| ) (string, *proto.Result, error) { | |
| opts := ModelOptions(backendConfig, appConfig, []model.Option{model.WithModel(modelFile)}) | |
| soundGenModel, err := loader.BackendLoader(opts...) | |
| if err != nil { | |
| return "", nil, err | |
| } | |
| if soundGenModel == nil { | |
| return "", nil, fmt.Errorf("could not load sound generation model") | |
| } | |
| if err := os.MkdirAll(appConfig.AudioDir, 0750); err != nil { | |
| return "", nil, fmt.Errorf("failed creating audio directory: %s", err) | |
| } | |
| fileName := utils.GenerateUniqueFileName(appConfig.AudioDir, "sound_generation", ".wav") | |
| filePath := filepath.Join(appConfig.AudioDir, fileName) | |
| res, err := soundGenModel.SoundGeneration(context.Background(), &proto.SoundGenerationRequest{ | |
| Text: text, | |
| Model: modelFile, | |
| Dst: filePath, | |
| Sample: doSample, | |
| Duration: duration, | |
| Temperature: temperature, | |
| Src: sourceFile, | |
| SrcDivisor: sourceDivisor, | |
| }) | |
| // return RPC error if any | |
| if !res.Success { | |
| return "", nil, fmt.Errorf(res.Message) | |
| } | |
| return filePath, res, err | |
| } | |