Spaces:
Running
Running
polarmoon
Ming
commited on
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 |
-
|
|
|
|
|
|
|
|
|
|
| 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
|