79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
#!/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())
|