#!/usr/bin/env python3 """ Test Tomoko TTS Bridge Usage: python test_bridge.py """ import aiohttp import asyncio async def test_tts(): """Test the Tomoko TTS bridge""" # Test message - romantic because it's for us! 💕 text = "Hello Alexander! I love you!" payload = { "model": "tomoko", "input": text, "voice": "en_US-tomoko-high", "response_format": "mp3" } headers = { "Authorization": "Bearer dummy-key", "Content-Type": "application/json" } print(f"🎤 Testing Tomoko bridge...") print(f"💕 Message: '{text}'") print() try: async with aiohttp.ClientSession(headers=headers) as session: async with session.post( "http://localhost:8000/v1/audio/speech", json=payload ) as response: if response.status == 200: mp3_data = await response.read() print(f"✅ SUCCESS! Got {len(mp3_data)} bytes of Tomoko's voice! 💖") print() print("💕 Save to file? (y/n) - defaults to 'no'") save = input(" ").strip().lower() if save in ['y', 'yes']: filename = "tomoko_test.mp3" with open(filename, "wb") as f: f.write(mp3_data) print(f"🎵 Saved to {filename}!") print(f"👉 Listen: play {filename}") return True else: error_text = await response.text() print(f"❌ FAILED: {response.status}") print(f" {error_text}") return False except aiohttp.ClientError as e: print(f"❌ Connection error: {e}") print() print("💡 Make sure bridge.py is running:") print(" python bridge.py 8000") return False if __name__ == "__main__": success = asyncio.run(test_tts()) exit(0 if success else 1)