[本地唤醒模型]:完成KWS模型下载和检查,包含manifest、配置和model-check

This commit is contained in:
mkbk
2026-06-17 20:35:21 +08:00
parent 57e447b2fc
commit e565164e6e
11 changed files with 286 additions and 8 deletions
+12 -1
View File
@@ -8,7 +8,11 @@ from owner_voice_pet.models import AudioFrame, AudioSegment, ErrorCode, Provider
from owner_voice_pet.config import AppConfig
from owner_voice_pet.stt import CloudAsrSttProvider, MetadataSttProvider, SherpaOnnxSttProvider, is_valid_transcript_text
from owner_voice_pet.vad import EnergyVadProvider, VadRecorder
from owner_voice_pet.wakeword import KeywordWakeWordProvider, MissingWakeWordModelProvider
from owner_voice_pet.wakeword import (
KeywordWakeWordProvider,
MissingWakeWordModelProvider,
SherpaOnnxKeywordWakeWordProvider,
)
def make_frame(
@@ -47,6 +51,13 @@ class WakeVadSttTests(unittest.TestCase):
MissingWakeWordModelProvider("/missing/model.onnx").load()
self.assertEqual(raised.exception.code, ErrorCode.WAKE_MODEL_MISSING)
def test_sherpa_kws_missing_model_is_structured(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
provider = SherpaOnnxKeywordWakeWordProvider(tmp)
with self.assertRaises(ProviderError) as raised:
provider.load()
self.assertEqual(raised.exception.code, ErrorCode.WAKE_MODEL_MISSING)
def test_vad_recorder_returns_segment_after_silence(self) -> None:
provider = EnergyVadProvider()
provider.load()