// Set language id
func (p *Params) SetLanguage(lang int) error {
+ if lang == -1 {
+ p.language = nil
+ return nil
+ }
str := C.whisper_lang_str(C.int(lang))
if str == nil {
return ErrInvalidLanguage
if !context.model.IsMultilingual() {
return ErrModelNotMultilingual
}
- if id := context.model.ctx.Whisper_lang_id(lang); id < 0 {
+
+ if lang == "auto" {
+ context.params.SetLanguage(-1)
+ } else if id := context.model.ctx.Whisper_lang_id(lang); id < 0 {
return ErrUnsupportedLanguage
} else if err := context.params.SetLanguage(id); err != nil {
return err
// Get language
func (context *context) Language() string {
+ id := context.params.Language()
+ if id == -1 {
+ return "auto"
+ }
return whisper.Whisper_lang_str(context.params.Language())
}
// Context is the speach recognition context.
type Context interface {
- SetLanguage(string) error // Set the language to use for speech recognition.
+ SetLanguage(string) error // Set the language to use for speech recognition, use "auto" for auto detect language.
SetTranslate(bool) // Set translate flag
IsMultilingual() bool // Return true if the model is multilingual.
Language() string // Get language