refactor: break up voice_loop.py::run() into focused helpers (#567)
Co-authored-by: Kimi Agent <kimi@timmy.local> Co-committed-by: Kimi Agent <kimi@timmy.local>
This commit was merged in pull request #567.
This commit is contained in:
@@ -236,6 +236,7 @@ class TestHallucinationFilter:
|
||||
"""Whisper tends to hallucinate on silence/noise. The loop should filter these."""
|
||||
|
||||
def test_known_hallucinations_filtered(self):
|
||||
loop = VoiceLoop()
|
||||
hallucinations = [
|
||||
"you",
|
||||
"thanks.",
|
||||
@@ -243,33 +244,35 @@ class TestHallucinationFilter:
|
||||
"Bye.",
|
||||
"Thanks for watching!",
|
||||
"Thank you for watching!",
|
||||
"",
|
||||
]
|
||||
for text in hallucinations:
|
||||
assert text.lower() in (
|
||||
"you",
|
||||
"thanks.",
|
||||
"thank you.",
|
||||
"bye.",
|
||||
"",
|
||||
"thanks for watching!",
|
||||
"thank you for watching!",
|
||||
), f"'{text}' should be filtered"
|
||||
assert loop._is_hallucination(text), f"'{text}' should be filtered"
|
||||
|
||||
def test_real_speech_not_filtered(self):
|
||||
loop = VoiceLoop()
|
||||
assert not loop._is_hallucination("Hello Timmy")
|
||||
assert not loop._is_hallucination("What time is it?")
|
||||
|
||||
|
||||
class TestExitCommands:
|
||||
"""Voice loop should recognize exit commands."""
|
||||
|
||||
def test_exit_commands(self):
|
||||
loop = VoiceLoop()
|
||||
exits = ["goodbye", "exit", "quit", "stop", "goodbye timmy", "stop listening"]
|
||||
for cmd in exits:
|
||||
assert cmd.lower().strip().rstrip(".!") in (
|
||||
"goodbye",
|
||||
"exit",
|
||||
"quit",
|
||||
"stop",
|
||||
"goodbye timmy",
|
||||
"stop listening",
|
||||
), f"'{cmd}' should be an exit command"
|
||||
assert loop._is_exit_command(cmd), f"'{cmd}' should be an exit command"
|
||||
|
||||
def test_exit_with_punctuation(self):
|
||||
loop = VoiceLoop()
|
||||
assert loop._is_exit_command("goodbye!")
|
||||
assert loop._is_exit_command("stop.")
|
||||
|
||||
def test_non_exit_commands(self):
|
||||
loop = VoiceLoop()
|
||||
assert not loop._is_exit_command("hello")
|
||||
assert not loop._is_exit_command("what time is it")
|
||||
|
||||
|
||||
class TestPlayAudio:
|
||||
|
||||
Reference in New Issue
Block a user