@@ -189,6 +189,7 @@ func (context *context) WhisperLangAutoDetect(offset_ms int, n_threads int) ([]f
189
189
// Process new sample data and return any errors
190
190
func (context * context ) Process (
191
191
data []float32 ,
192
+ callEncoderBegin EncoderBeginCallback ,
192
193
callNewSegment SegmentCallback ,
193
194
callProgress ProgressCallback ,
194
195
) error {
@@ -203,30 +204,32 @@ func (context *context) Process(
203
204
// We don't do parallel processing at the moment
204
205
processors := 0
205
206
if processors > 1 {
206
- if err := context .model .ctx .Whisper_full_parallel (context .params , data , processors , nil , func (new int ) {
207
+ if err := context .model .ctx .Whisper_full_parallel (context .params , data , processors , callEncoderBegin ,
208
+ func (new int ) {
209
+ if callNewSegment != nil {
210
+ num_segments := context .model .ctx .Whisper_full_n_segments ()
211
+ s0 := num_segments - new
212
+ for i := s0 ; i < num_segments ; i ++ {
213
+ callNewSegment (toSegment (context .model .ctx , i ))
214
+ }
215
+ }
216
+ }); err != nil {
217
+ return err
218
+ }
219
+ } else if err := context .model .ctx .Whisper_full (context .params , data , callEncoderBegin ,
220
+ func (new int ) {
207
221
if callNewSegment != nil {
208
222
num_segments := context .model .ctx .Whisper_full_n_segments ()
209
223
s0 := num_segments - new
210
224
for i := s0 ; i < num_segments ; i ++ {
211
225
callNewSegment (toSegment (context .model .ctx , i ))
212
226
}
213
227
}
214
- }); err != nil {
215
- return err
216
- }
217
- } else if err := context .model .ctx .Whisper_full (context .params , data , nil , func (new int ) {
218
- if callNewSegment != nil {
219
- num_segments := context .model .ctx .Whisper_full_n_segments ()
220
- s0 := num_segments - new
221
- for i := s0 ; i < num_segments ; i ++ {
222
- callNewSegment (toSegment (context .model .ctx , i ))
228
+ }, func (progress int ) {
229
+ if callProgress != nil {
230
+ callProgress (progress )
223
231
}
224
- }
225
- }, func (progress int ) {
226
- if callProgress != nil {
227
- callProgress (progress )
228
- }
229
- }); err != nil {
232
+ }); err != nil {
230
233
return err
231
234
}
232
235
0 commit comments