From d14fa75079de570cb9c4dbf63f6b5bd65f959b09 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Sun, 14 Jun 2026 20:14:34 +0800
Subject: [PATCH] Fix X-ASR release tail capture
---
privatevoice.src/internal/engine/engine_darwin_test.go | 35 +++++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/privatevoice.src/internal/engine/engine_darwin_test.go b/privatevoice.src/internal/engine/engine_darwin_test.go
index 50e2a44..a46bcea 100644
--- a/privatevoice.src/internal/engine/engine_darwin_test.go
+++ b/privatevoice.src/internal/engine/engine_darwin_test.go
@@ -6,6 +6,7 @@
"os"
"path/filepath"
"testing"
+ "time"
"voicesnap/internal/model"
)
@@ -142,6 +143,40 @@
}
}
+func TestRememberNonEmptyTextKeepsLastPartial(t *testing.T) {
+ got := rememberNonEmptyText("最后一句", " ")
+ if got != "最后一句" {
+ t.Fatalf("rememberNonEmptyText() = %q, want last non-empty text", got)
+ }
+
+ got = rememberNonEmptyText("旧内容", "新内容")
+ if got != "新内容" {
+ t.Fatalf("rememberNonEmptyText() = %q, want new non-empty text", got)
+ }
+}
+
+func TestXASRTailPaddingMatchesFlushWindow(t *testing.T) {
+ if xasrTailPaddingSamples != 24000 {
+ t.Fatalf("tail padding samples = %d, want 24000", xasrTailPaddingSamples)
+ }
+ if len(xasrTailPadding) != xasrTailPaddingSamples {
+ t.Fatalf("tail padding len = %d, want %d", len(xasrTailPadding), xasrTailPaddingSamples)
+ }
+}
+
+func TestXASRRequestsReleaseTailCaptureDelay(t *testing.T) {
+ got := (&xasrStreamingEngine{}).ReleaseTailCaptureDelay()
+ if got != 300*time.Millisecond {
+ t.Fatalf("ReleaseTailCaptureDelay() = %v, want 300ms", got)
+ }
+}
+
+func TestOfflineSherpaDoesNotRequestReleaseTailCapture(t *testing.T) {
+ if _, ok := any(&sherpaEngine{}).(ReleaseTailCaptureEngine); ok {
+ t.Fatal("offline sherpa engine should not request release tail capture")
+ }
+}
+
func TestXASRRealModelSmoke(t *testing.T) {
if os.Getenv("PRIVATEVOICE_XASR_SMOKE") != "1" {
t.Skip("set PRIVATEVOICE_XASR_SMOKE=1 to run the real X-ASR model smoke test")
--
Gitblit v1.9.3