""" WebSocket Test Client Tests the WebSocket server with sine wave audio generation. Usage: python test_client.py python test_client.py --url ws://localhost:8000/ws """ import asyncio import aiohttp import json import struct import math import argparse from datetime import datetime # Configuration SERVER_URL = "ws://localhost:8000/ws" SAMPLE_RATE = 16000 FREQUENCY = 440 # 440Hz sine wave CHUNK_DURATION_MS = 20 CHUNK_SIZE_BYTES = int(SAMPLE_RATE * 2 * (CHUNK_DURATION_MS / 1000.0)) # 640 bytes def generate_sine_wave(duration_ms=1000): """ Generate sine wave audio data. Format: 16kHz, mono, 16-bit PCM """ num_samples = int(SAMPLE_RATE * (duration_ms / 1000.0)) audio_data = bytearray() for x in range(num_samples): # Generate sine wave sample value = int(32767.0 * math.sin(2 * math.pi * FREQUENCY * x / SAMPLE_RATE)) # Pack as little-endian 16-bit signed integer audio_data.extend(struct.pack('