#!/usr/bin/env python """ TTS Debug Script - Tests connection to the OpenAI TTS server """ import os import sys import json import requests from argparse import ArgumentParser def test_tts_connection(server_url, api_key, text="Hello, this is a test message"): """Test connection to the TTS server""" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } payload = { "input": text, "voice": "echo", "response_format": "mp3", "speed": 1.0 } print(f"Sending request to: {server_url}") print(f"Headers: {headers}") print(f"Payload: {json.dumps(payload, indent=2)}") try: response = requests.post( server_url, headers=headers, json=payload, timeout=15 ) print(f"Response status code: {response.status_code}") if response.status_code == 200: print("Success! Received audio data") # Save to file output_file = "tts_test_output.mp3" with open(output_file, "wb") as f: f.write(response.content) print(f"Saved audio to {output_file}") return True else: print("Error in response") try: error_data = response.json() print(f"Error details: {json.dumps(error_data, indent=2)}") except: print(f"Raw response: {response.text[:500]}") return False except Exception as e: print(f"Error during request: {str(e)}") return False def main(): parser = ArgumentParser(description="Test connection to OpenAI TTS server") parser.add_argument("--url", default="http://localhost:5050/v1/audio/speech", help="TTS server URL") parser.add_argument("--key", default=os.environ.get("TTS_API_KEY", ""), help="API key") parser.add_argument("--text", default="Hello, this is a test message", help="Text to synthesize") args = parser.parse_args() if not args.key: print("Error: API key is required. Use --key argument or set TTS_API_KEY environment variable.") return 1 success = test_tts_connection(args.url, args.key, args.text) return 0 if success else 1 if __name__ == "__main__": sys.exit(main())