forked from extern/whisper.cpp
go : add wrapper for system info (#456)
This commit is contained in:
parent
beb9512be3
commit
2bee2650c6
@ -25,6 +25,8 @@ func Process(model whisper.Model, path string, flags *Flags) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("\n%s\n", context.SystemInfo())
|
||||||
|
|
||||||
// Open the file
|
// Open the file
|
||||||
fmt.Fprintf(flags.Output(), "Loading %q\n", path)
|
fmt.Fprintf(flags.Output(), "Loading %q\n", path)
|
||||||
fh, err := os.Open(path)
|
fh, err := os.Open(path)
|
||||||
|
@ -66,6 +66,11 @@ func (p *Params) Language() int {
|
|||||||
return int(C.whisper_lang_id(p.language))
|
return int(C.whisper_lang_id(p.language))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Threads available
|
||||||
|
func (p *Params) Threads() int {
|
||||||
|
return int(p.n_threads)
|
||||||
|
}
|
||||||
|
|
||||||
// Set number of threads to use
|
// Set number of threads to use
|
||||||
func (p *Params) SetThreads(threads int) {
|
func (p *Params) SetThreads(threads int) {
|
||||||
p.n_threads = C.int(threads)
|
p.n_threads = C.int(threads)
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package whisper
|
package whisper
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"runtime"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -117,13 +119,22 @@ func (context *context) PrintTimings() {
|
|||||||
context.model.ctx.Whisper_print_timings()
|
context.model.ctx.Whisper_print_timings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SystemInfo returns the system information
|
||||||
|
func (context *context) SystemInfo() string {
|
||||||
|
return fmt.Sprintf("system_info: n_threads = %d / %d | %s\n",
|
||||||
|
context.params.Threads(),
|
||||||
|
runtime.NumCPU(),
|
||||||
|
whisper.Whisper_print_system_info(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
// Use mel data at offset_ms to try and auto-detect the spoken language
|
// Use mel data at offset_ms to try and auto-detect the spoken language
|
||||||
// Make sure to call whisper_pcm_to_mel() or whisper_set_mel() first.
|
// Make sure to call whisper_pcm_to_mel() or whisper_set_mel() first.
|
||||||
// Returns the probabilities of all languages.
|
// Returns the probabilities of all languages.
|
||||||
func (context *context) WhisperLangAutoDetect(offset_ms int, n_threads int) ([]float32, error) {
|
func (context *context) WhisperLangAutoDetect(offset_ms int, n_threads int) ([]float32, error) {
|
||||||
langProbs, err := context.model.ctx.Whisper_lang_auto_detect(offset_ms, n_threads)
|
langProbs, err := context.model.ctx.Whisper_lang_auto_detect(offset_ms, n_threads)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return langProbs, nil
|
return langProbs, nil
|
||||||
}
|
}
|
||||||
|
@ -61,8 +61,11 @@ type Context interface {
|
|||||||
IsLANG(Token, string) bool // Test for token associated with a specific language
|
IsLANG(Token, string) bool // Test for token associated with a specific language
|
||||||
IsText(Token) bool // Test for text token
|
IsText(Token) bool // Test for text token
|
||||||
|
|
||||||
|
// Timings
|
||||||
PrintTimings()
|
PrintTimings()
|
||||||
ResetTimings()
|
ResetTimings()
|
||||||
|
|
||||||
|
SystemInfo() string
|
||||||
}
|
}
|
||||||
|
|
||||||
// Segment is the text result of a speech recognition.
|
// Segment is the text result of a speech recognition.
|
||||||
|
Loading…
Reference in New Issue
Block a user