|
package main |
|
|
|
|
|
|
|
import ( |
|
"github.com/ggerganov/whisper.cpp/bindings/go/pkg/whisper" |
|
"github.com/mudler/LocalAI/core/schema" |
|
"github.com/mudler/LocalAI/pkg/grpc/base" |
|
pb "github.com/mudler/LocalAI/pkg/grpc/proto" |
|
) |
|
|
|
type Whisper struct { |
|
base.SingleThread |
|
whisper whisper.Model |
|
} |
|
|
|
func (sd *Whisper) Load(opts *pb.ModelOptions) error { |
|
|
|
w, err := whisper.New(opts.ModelFile) |
|
sd.whisper = w |
|
return err |
|
} |
|
|
|
func (sd *Whisper) AudioTranscription(opts *pb.TranscriptRequest) (schema.TranscriptionResult, error) { |
|
return Transcript(sd.whisper, opts.Dst, opts.Language, opts.Translate, uint(opts.Threads)) |
|
} |
|
|