Ariver
2026-06-14 d14fa75079de570cb9c4dbf63f6b5bd65f959b09
privatevoice.src/internal/engine/engine.go
@@ -2,6 +2,7 @@
import (
   "fmt"
   "time"
   "voicesnap/internal/config"
   "voicesnap/internal/language"
   "voicesnap/internal/logger"
@@ -20,6 +21,26 @@
   Close()
}
// StreamingEngine is implemented by engines that can expose partial results
// while audio is still being captured.
type StreamingEngine interface {
   NewStreamingSession() (StreamingSession, error)
}
// ReleaseTailCaptureEngine is implemented by engines that need a short audio
// capture grace period after the user releases the recording hotkey.
type ReleaseTailCaptureEngine interface {
   ReleaseTailCaptureDelay() time.Duration
}
// StreamingSession receives incremental 16kHz mono PCM and returns the current
// best transcript for the active utterance.
type StreamingSession interface {
   Accept(samples []float32) (string, error)
   Finish() (string, error)
   Close()
}
// ModelDir returns the path to the sensevoice model directory.
func ModelDir() string {
   resolved, err := resolveCurrentModel()