diff --git a/README.md b/README.md index 7ac0b70..fa15b35 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,41 @@ ## ASR SERVICE -### A FASTAPI client for receieving audio data from font and sending audio to a Triton ASR service using SSE or WebSocket streaming. It yields real-time transcription results as JSON-like events. +### A FASTAPI client for receieving audio data from font and sending audio to a Triton ASR service using WebSocket streaming. It yields real-time transcription results as JSON-like events. + + +## Test + + import asyncio + import websockets + import json + + AUDIO_FILE = "./data/khabar_1_5.wav" + WS_URL = "ws://127.0.0.1:7200/asr" + + async def send_audio(): + async with websockets.connect(WS_URL) as ws: + print("Connected to ASR WebSocket") + + # Send audio in chunks + with open(AUDIO_FILE, "rb") as f: + chunk_size = 100000 + while chunk := f.read(chunk_size): + await ws.send(chunk) + + # Tell server no more audio is coming + await ws.send(json.dumps({"eof": True})) + + # Receive results + try: + while True: + message = await ws.recv() + data = json.loads(message) + print("Received:", data) + + except websockets.exceptions.ConnectionClosed: + print("WebSocket closed by server") + + asyncio.run(send_audio()) ## How to run