Files
voiceagent/tests/test_nvidia_stt_integration.py

71 lines
1.4 KiB
Python

import asyncio
import wave
from voice_assistant.stt.nvidia import NvidiaSTTAdapter
AUDIO_FILE = (
"/home/ubuntu/voice-assistant/audios/chafik_normalize.wav"
)
CHUNK_FRAMES = 1600
async def main() -> None:
stt = NvidiaSTTAdapter(
server="127.0.0.1:9000",
language_code="pt-BR",
automatic_punctuation=True,
)
print("Starting STT session...")
await stt.start_session()
print("STT session ready.")
async def send_audio() -> None:
with wave.open(AUDIO_FILE, "rb") as wav:
while True:
audio = wav.readframes(CHUNK_FRAMES)
if not audio:
break
await stt.send_audio(audio)
async def receive_events() -> None:
async for event in stt.events():
print(
f"[{event.type.upper():7}] {event.text}"
)
sender = asyncio.create_task(send_audio())
receiver = asyncio.create_task(receive_events())
try:
await sender
print("Audio stream sent.")
await stt.stop_session()
await receiver
finally:
if not sender.done():
sender.cancel()
if not receiver.done():
receiver.cancel()
await asyncio.gather(
sender,
receiver,
return_exceptions=True,
)
print("STT session finished.")
if __name__ == "__main__":
asyncio.run(main())