[模拟麦克风验收]:完成自动化语音闭环自测,包含模拟音频输入、两轮Pipeline验证和fixture回放

This commit is contained in:
mkbk
2026-06-17 23:04:20 +08:00
parent 8c75fc5baf
commit b3566c2424
10 changed files with 445 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from owner_voice_pet.simulation import run_simulated_live
class SimulationTests(unittest.TestCase):
def test_simulated_live_runs_two_turns_with_context_and_noise_filter(self) -> None:
result = run_simulated_live(turns=2)
self.assertTrue(result["success"], result)
self.assertEqual(result["completed_turns"], 2)
self.assertEqual(result["failed_turns"], 0)
self.assertEqual(result["final_transcripts"], ["第1轮模拟问题", "第2轮模拟问题"])
self.assertNotIn("", result["partials"])
self.assertNotIn("家确", result["partials"])
self.assertTrue(result["checks"]["context_in_second_turn"])
self.assertTrue(result["checks"]["denoised_capture"])
self.assertEqual(result["checks"]["standby_per_turn"], True)
def test_simulated_live_can_write_and_replay_fixture(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
fixture = Path(tmp) / "simulated-mic.jsonl"
generated = run_simulated_live(turns=1, write_fixture=fixture)
replayed = run_simulated_live(turns=1, fixture_path=fixture)
self.assertTrue(generated["success"], generated)
self.assertTrue(replayed["success"], replayed)
self.assertEqual(replayed["final_transcripts"], ["第1轮模拟问题"])
if __name__ == "__main__":
unittest.main()