first commit
This commit is contained in:
57
tests/providers/test_fake_stt.py
Normal file
57
tests/providers/test_fake_stt.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from unittest import mock
|
||||
import unittest
|
||||
|
||||
from livekit import rtc
|
||||
|
||||
from app.providers.stt_fake import FakeSTT
|
||||
|
||||
|
||||
def _audio_frame(samples_per_channel: int) -> rtc.AudioFrame:
|
||||
return rtc.AudioFrame(
|
||||
data=b"\x00\x00" * samples_per_channel,
|
||||
sample_rate=16000,
|
||||
num_channels=1,
|
||||
samples_per_channel=samples_per_channel,
|
||||
)
|
||||
|
||||
|
||||
class FakeSTTTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_fake_stt_returns_configured_transcripts_in_order(self) -> None:
|
||||
with mock.patch.dict(
|
||||
os.environ,
|
||||
{
|
||||
"FAKE_STT_TRANSCRIPTS": "primeira|segunda",
|
||||
"FAKE_STT_MODE": "repeat_last",
|
||||
"FAKE_STT_MIN_AUDIO_MS": "0",
|
||||
},
|
||||
clear=True,
|
||||
):
|
||||
stt = FakeSTT(language="pt-BR")
|
||||
first = await stt.recognize([_audio_frame(3200)])
|
||||
second = await stt.recognize([_audio_frame(3200)])
|
||||
third = await stt.recognize([_audio_frame(3200)])
|
||||
|
||||
self.assertEqual(first.alternatives[0].text, "primeira")
|
||||
self.assertEqual(second.alternatives[0].text, "segunda")
|
||||
self.assertEqual(third.alternatives[0].text, "segunda")
|
||||
|
||||
async def test_fake_stt_skips_too_short_audio(self) -> None:
|
||||
with mock.patch.dict(
|
||||
os.environ,
|
||||
{
|
||||
"FAKE_STT_TRANSCRIPTS": "fala",
|
||||
"FAKE_STT_MIN_AUDIO_MS": "200",
|
||||
},
|
||||
clear=True,
|
||||
):
|
||||
stt = FakeSTT(language="pt-BR")
|
||||
event = await stt.recognize([_audio_frame(800)])
|
||||
|
||||
self.assertEqual(event.alternatives[0].text, "")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user