polarmoon Ming commited on
Commit
ccaa693
·
unverified ·
1 Parent(s): 76cff15

go : support "auto" as an option when set language (#462)

Browse files
bindings/go/params.go CHANGED
@@ -49,6 +49,10 @@ func (p *Params) SetSpeedup(v bool) {
49
 
50
  // Set language id
51
  func (p *Params) SetLanguage(lang int) error {
 
 
 
 
52
  str := C.whisper_lang_str(C.int(lang))
53
  if str == nil {
54
  return ErrInvalidLanguage
 
49
 
50
  // Set language id
51
  func (p *Params) SetLanguage(lang int) error {
52
+ if lang == -1 {
53
+ p.language = nil
54
+ return nil
55
+ }
56
  str := C.whisper_lang_str(C.int(lang))
57
  if str == nil {
58
  return ErrInvalidLanguage
bindings/go/pkg/whisper/context.go CHANGED
@@ -46,7 +46,10 @@ func (context *context) SetLanguage(lang string) error {
46
  if !context.model.IsMultilingual() {
47
  return ErrModelNotMultilingual
48
  }
49
- if id := context.model.ctx.Whisper_lang_id(lang); id < 0 {
 
 
 
50
  return ErrUnsupportedLanguage
51
  } else if err := context.params.SetLanguage(id); err != nil {
52
  return err
@@ -61,6 +64,10 @@ func (context *context) IsMultilingual() bool {
61
 
62
  // Get language
63
  func (context *context) Language() string {
 
 
 
 
64
  return whisper.Whisper_lang_str(context.params.Language())
65
  }
66
 
 
46
  if !context.model.IsMultilingual() {
47
  return ErrModelNotMultilingual
48
  }
49
+
50
+ if lang == "auto" {
51
+ context.params.SetLanguage(-1)
52
+ } else if id := context.model.ctx.Whisper_lang_id(lang); id < 0 {
53
  return ErrUnsupportedLanguage
54
  } else if err := context.params.SetLanguage(id); err != nil {
55
  return err
 
64
 
65
  // Get language
66
  func (context *context) Language() string {
67
+ id := context.params.Language()
68
+ if id == -1 {
69
+ return "auto"
70
+ }
71
  return whisper.Whisper_lang_str(context.params.Language())
72
  }
73
 
bindings/go/pkg/whisper/interface.go CHANGED
@@ -29,7 +29,7 @@ type Model interface {
29
 
30
  // Context is the speach recognition context.
31
  type Context interface {
32
- SetLanguage(string) error // Set the language to use for speech recognition.
33
  SetTranslate(bool) // Set translate flag
34
  IsMultilingual() bool // Return true if the model is multilingual.
35
  Language() string // Get language
 
29
 
30
  // Context is the speach recognition context.
31
  type Context interface {
32
+ SetLanguage(string) error // Set the language to use for speech recognition, use "auto" for auto detect language.
33
  SetTranslate(bool) // Set translate flag
34
  IsMultilingual() bool // Return true if the model is multilingual.
35
  Language() string // Get language