]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
go : add beamsize/entropythold/maxcontext to context interface (#2350)
authorhsinhoyeh <redacted>
Wed, 28 Aug 2024 14:09:01 +0000 (22:09 +0800)
committerGitHub <redacted>
Wed, 28 Aug 2024 14:09:01 +0000 (17:09 +0300)
* feat(go binding): add beamsize/entropythold/maxcontext to context interface

fixes: #2349

* fix go building build

* fix dynamic link .so and header.h

* remove LD_LIBRARY_PATH

* remove ggml obj from whisper dynamic lib

* drop LIB_GGML

Makefile
bindings/go/Makefile
bindings/go/params.go
bindings/go/pkg/whisper/context.go
bindings/go/pkg/whisper/interface.go
bindings/go/whisper.go

index d8ef07c8a240093fa2f17f562d6b3c94f7c461f2..3e359f2fe1ac8a511ca77f1805feb24108a02e46 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -971,7 +971,8 @@ $(LIB_WHISPER): \
        $(CXX) $(CXXFLAGS) -shared -fPIC -o $@ $^ $(LDFLAGS)
 
 $(LIB_WHISPER_S): \
-       $(OBJ_WHISPER)
+       $(OBJ_WHISPER) \
+       $(OBJ_GGML)
        ar rcs $(LIB_WHISPER_S) $^
 
 # common
index 4f3a416a3ff0fbabb32f6021edaf1279a314d053..20a054c116fe2637a6bbe1708a96f4fc303146d6 100644 (file)
@@ -14,7 +14,7 @@ GGML_METAL_PATH_RESOURCES := $(abspath ../..)
 BUILD_DIR := build
 MODELS_DIR := models
 EXAMPLES_DIR := $(wildcard examples/*)
-INCLUDE_PATH := $(abspath ../..)
+INCLUDE_PATH := $(abspath ../../include):$(abspath ../../ggml/include)
 LIBRARY_PATH := $(abspath ../..)
 
 ifeq ($(UNAME_S),Darwin)
index 4b4da032d62e1fee2f618fc7eccf277660de6458..9c075b6a2cbd8457ae040d0c5ef2bb748447f555 100644 (file)
@@ -119,6 +119,18 @@ func (p *Params) SetAudioCtx(n int) {
        p.audio_ctx = C.int(n)
 }
 
+func (p *Params) SetMaxContext(n int) {
+       p.n_max_text_ctx = C.int(n)
+}
+
+func (p *Params) SetBeamSize(n int) {
+       p.beam_search.beam_size = C.int(n)
+}
+
+func (p *Params) SetEntropyThold(t float32) {
+       p.entropy_thold = C.float(t)
+}
+
 // Set initial prompt
 func (p *Params) SetInitialPrompt(prompt string) {
        p.initial_prompt = C.CString(prompt)
@@ -149,6 +161,8 @@ func (p *Params) String() string {
        str += fmt.Sprintf(" duration_ms=%d", p.duration_ms)
        str += fmt.Sprintf(" audio_ctx=%d", p.audio_ctx)
        str += fmt.Sprintf(" initial_prompt=%s", C.GoString(p.initial_prompt))
+       str += fmt.Sprintf(" entropy_thold=%f", p.entropy_thold)
+       str += fmt.Sprintf(" beam_size=%d", p.beam_search.beam_size)
        if p.translate {
                str += " translate"
        }
index ead92648f3e79952b7de458605e40881e78066df..dc34aa18bb87f66736b51b166c92cfaccf7caca5 100644 (file)
@@ -125,6 +125,21 @@ func (context *context) SetAudioCtx(n uint) {
        context.params.SetAudioCtx(int(n))
 }
 
+// Set maximum number of text context tokens to store
+func (context *context) SetMaxContext(n int) {
+       context.params.SetMaxContext(n)
+}
+
+// Set Beam Size
+func (context *context) SetBeamSize(n int) {
+       context.params.SetBeamSize(n)
+}
+
+// Set Entropy threshold
+func (context *context) SetEntropyThold(t float32) {
+       context.params.SetEntropyThold(t)
+}
+
 // Set initial prompt
 func (context *context) SetInitialPrompt(prompt string) {
        context.params.SetInitialPrompt(prompt)
index b430e7ce8538f4072eeb3ec79b190dcd4e73456b..6eb692ef6102b351fff7452dcb19dbd0b1ecfe78 100644 (file)
@@ -48,6 +48,9 @@ type Context interface {
        SetTokenTimestamps(bool)        // Set token timestamps flag
        SetMaxTokensPerSegment(uint)    // Set max tokens per segment (0 = no limit)
        SetAudioCtx(uint)               // Set audio encoder context
+       SetMaxContext(n int)            // Set maximum number of text context tokens to store
+       SetBeamSize(n int)              // Set Beam Size
+       SetEntropyThold(t float32)      // Set Entropy threshold
        SetInitialPrompt(prompt string) // Set initial prompt
 
        // Process mono audio data and return any errors.
index 87da83f0f108aa9810d450981d12aeb96a3adeda..39ec43b47ed7fbe0de46edd008d5fe13ed3b7d3f 100644 (file)
@@ -9,7 +9,7 @@ import (
 // CGO
 
 /*
-#cgo LDFLAGS: -lwhisper -lm -lstdc++
+#cgo LDFLAGS: -lwhisper -lm -lstdc++ -fopenmp
 #cgo darwin LDFLAGS: -framework Accelerate -framework Metal -framework Foundation -framework CoreGraphics
 #include <whisper.h>
 #include <stdlib.h>