[模拟麦克风验收]:完成自动化语音闭环自测,包含模拟音频输入、两轮Pipeline验证和fixture回放
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user