[结束提示音优化]:完成Codex通知音资产内置,包含音频提取、配置默认值和回归测试

This commit is contained in:
mkbk
2026-06-18 14:10:34 +08:00
parent 80549fb312
commit d83f5a19cb
14 changed files with 102 additions and 8 deletions
+17 -1
View File
@@ -12,7 +12,7 @@ from owner_voice_pet.models import AudioFrame, ErrorCode, Message, PipelineState
from owner_voice_pet.pipeline import VoicePipeline
from owner_voice_pet.stt import MetadataSttProvider
from owner_voice_pet.transport import MemoryAudioTransport
from owner_voice_pet.tts import CloudTtsProvider, SentenceBuffer, SineTtsProvider, make_prompt_chime, sanitize_tts_text
from owner_voice_pet.tts import CloudTtsProvider, SentenceBuffer, SineTtsProvider, make_end_chime, make_prompt_chime, sanitize_tts_text
from owner_voice_pet.vad import EnergyVadProvider, VadRecorder
from owner_voice_pet.wakeword import KeywordWakeWordProvider
@@ -78,8 +78,24 @@ class PipelineLlmTtsTests(unittest.TestCase):
self.assertEqual(segment.duration_ms, 140)
self.assertEqual(segment.metadata["chime"], "end")
self.assertEqual(segment.metadata["source"], "synthetic")
self.assertGreater(len(segment.pcm), 0)
def test_end_chime_uses_file_when_present(self) -> None:
segment = make_end_chime(file_path="assets/sounds/codex-notification.wav")
self.assertEqual(segment.metadata["source"], "file")
self.assertEqual(segment.metadata["path"], "assets/sounds/codex-notification.wav")
self.assertEqual(segment.metadata["format"], "wav")
self.assertGreater(segment.duration_ms, 0)
def test_end_chime_falls_back_to_synthetic_when_file_missing(self) -> None:
segment = make_end_chime(file_path="/tmp/owner-voice-pet-missing-chime.wav", duration_ms=140)
self.assertEqual(segment.metadata["source"], "synthetic")
self.assertEqual(segment.metadata["chime"], "end")
self.assertEqual(segment.duration_ms, 140)
def test_cloud_tts_posts_speech_request(self) -> None:
class FakeResponse:
def __enter__(self):