]> git.djapps.eu Git - pkg/ggml/sources/whisper.cpp/commitdiff
go : add SetInitialPrompt method to bindings (#1753)
authorBoris Bliznioukov <redacted>
Fri, 12 Jan 2024 11:44:50 +0000 (14:44 +0300)
committerGitHub <redacted>
Fri, 12 Jan 2024 11:44:50 +0000 (13:44 +0200)
bindings/go/params.go
bindings/go/pkg/whisper/context.go
bindings/go/pkg/whisper/interface.go

index 3c9dd5ce8ec1ca812fbabb46a9fbcb7ae23c7860..5931bb0b199fa789a21415a8bef5cb09c779720f 100644 (file)
@@ -123,6 +123,11 @@ func (p *Params) SetAudioCtx(n int) {
        p.audio_ctx = C.int(n)
 }
 
+// Set initial prompt
+func (p *Params) SetInitialPrompt(prompt string) {
+       p.initial_prompt = C.CString(prompt)
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 // PRIVATE METHODS
 
@@ -147,6 +152,7 @@ func (p *Params) String() string {
        str += fmt.Sprintf(" offset_ms=%d", p.offset_ms)
        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))
        if p.translate {
                str += " translate"
        }
index f51d4f89ac0a238b384ca1c71550d985c468b666..0863ef6bb164a1d463aa1b04ed1a445d794f10ea 100644 (file)
@@ -130,6 +130,11 @@ func (context *context) SetAudioCtx(n uint) {
        context.params.SetAudioCtx(int(n))
 }
 
+// Set initial prompt
+func (context *context) SetInitialPrompt(prompt string) {
+       context.params.SetInitialPrompt(prompt)
+}
+
 // ResetTimings resets the mode timings. Should be called before processing
 func (context *context) ResetTimings() {
        context.model.ctx.Whisper_reset_timings()
index 4744271d21f979c92d946f95da7418abed1eacaa..4339e16f847bd3921819479a6e84f8926ea765bd 100644 (file)
@@ -38,17 +38,18 @@ type Context interface {
        IsMultilingual() bool     // Return true if the model is multilingual.
        Language() string         // Get language
 
-       SetOffset(time.Duration)      // Set offset
-       SetDuration(time.Duration)    // Set duration
-       SetThreads(uint)              // Set number of threads to use
-       SetSpeedup(bool)              // Set speedup flag
-       SetSplitOnWord(bool)          // Set split on word flag
-       SetTokenThreshold(float32)    // Set timestamp token probability threshold
-       SetTokenSumThreshold(float32) // Set timestamp token sum probability threshold
-       SetMaxSegmentLength(uint)     // Set max segment length in characters
-       SetTokenTimestamps(bool)      // Set token timestamps flag
-       SetMaxTokensPerSegment(uint)  // Set max tokens per segment (0 = no limit)
-       SetAudioCtx(uint)             // Set audio encoder context
+       SetOffset(time.Duration)        // Set offset
+       SetDuration(time.Duration)      // Set duration
+       SetThreads(uint)                // Set number of threads to use
+       SetSpeedup(bool)                // Set speedup flag
+       SetSplitOnWord(bool)            // Set split on word flag
+       SetTokenThreshold(float32)      // Set timestamp token probability threshold
+       SetTokenSumThreshold(float32)   // Set timestamp token sum probability threshold
+       SetMaxSegmentLength(uint)       // Set max segment length in characters
+       SetTokenTimestamps(bool)        // Set token timestamps flag
+       SetMaxTokensPerSegment(uint)    // Set max tokens per segment (0 = no limit)
+       SetAudioCtx(uint)               // Set audio encoder context
+       SetInitialPrompt(prompt string) // Set initial prompt
 
        // Process mono audio data and return any errors.
        // If defined, newly generated segments are passed to the