From 5fbe9789faf05ce99bbff6ec4cd0b905519acbd0 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 03 Jul 2026 05:18:07 +0800
Subject: [PATCH] Freeze R221 2.2.2 source baseline

---
 C1.source/privatevoice.src/internal/engine/engine_windows.go |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/C1.source/privatevoice.src/internal/engine/engine_windows.go b/C1.source/privatevoice.src/internal/engine/engine_windows.go
index 8ace9c7..17bfee2 100755
--- a/C1.source/privatevoice.src/internal/engine/engine_windows.go
+++ b/C1.source/privatevoice.src/internal/engine/engine_windows.go
@@ -14,6 +14,7 @@
 
 type sherpaEngine struct {
 	recognizer *sherpa.OfflineRecognizer
+	provider   string
 	hwInfo     string
 }
 
@@ -45,6 +46,7 @@
 			logger.Info("Engine initialized: %s", info)
 			return &sherpaEngine{
 				recognizer: recognizer,
+				provider:   p.provider,
 				hwInfo:     info,
 			}, nil
 		}
@@ -55,13 +57,35 @@
 }
 
 func (e *sherpaEngine) Recognize(samples []float32) (string, error) {
+	totalStart := time.Now()
+	streamStart := time.Now()
 	stream := sherpa.NewOfflineStream(e.recognizer)
+	streamMS := durationMS(time.Since(streamStart))
 	defer sherpa.DeleteOfflineStream(stream)
 
+	acceptStart := time.Now()
 	stream.AcceptWaveform(16000, samples)
+	acceptMS := durationMS(time.Since(acceptStart))
 
+	decodeStart := time.Now()
 	e.recognizer.Decode(stream)
+	decodeMS := durationMS(time.Since(decodeStart))
+	resultStart := time.Now()
 	result := stream.GetResult()
+	resultMS := durationMS(time.Since(resultStart))
+	logger.Info(
+		"PERF engine_recognize_detail backend=%q provider=%q engine=%q samples=%d audio_ms=%d create_stream_ms=%d accept_ms=%d decode_ms=%d result_ms=%d total_ms=%d",
+		model.BackendSenseVoice,
+		e.provider,
+		e.hwInfo,
+		len(samples),
+		audioDurationMS(samples),
+		streamMS,
+		acceptMS,
+		decodeMS,
+		resultMS,
+		durationMS(time.Since(totalStart)),
+	)
 
 	return result.Text, nil
 }
@@ -70,6 +94,10 @@
 	return e.hwInfo
 }
 
+func (e *sherpaEngine) Provider() string {
+	return e.provider
+}
+
 func (e *sherpaEngine) ReleaseTailCaptureDelay() time.Duration {
 	return senseVoiceReleaseTailDelay
 }

--
Gitblit v1.9.3