TTSFM_LAGECY / main.py
NitinBot001's picture
Update main.py
119600e verified
"""
OpenAI TTS API Server
This module provides a server that's compatible with OpenAI's TTS API format.
This is the main entry point for the application.
"""
import asyncio
import aiohttp
import logging
import ssl
import time
import sys
from typing import Optional
from aiohttp import TCPConnector, ClientTimeout
from utils.config import load_config, test_connection
from server.api import TTSServer
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
async def create_test_session(verify_ssl: bool = True) -> Optional[aiohttp.ClientSession]:
"""Create a session for testing with optimized settings."""
try:
if not verify_ssl:
connector = TCPConnector(
ssl=False,
limit=5,
ttl_dns_cache=300,
use_dns_cache=True,
enable_cleanup_closed=True
)
else:
connector = TCPConnector(
limit=5,
ttl_dns_cache=300,
use_dns_cache=True,
enable_cleanup_closed=True
)
timeout = ClientTimeout(
total=30,
connect=10,
sock_read=20
)
return aiohttp.ClientSession(
connector=connector,
timeout=timeout
)
except Exception as e:
logger.error(f"Failed to create test session: {str(e)}")
return None
async def main():
"""Main function to start the server."""
try:
config = load_config()
# Test connection mode
if config.get('test_connection', False):
session = await create_test_session(config['verify_ssl'])
if not session:
logger.error("Failed to create test session")
sys.exit(1)
try:
await test_connection(session)
except Exception as e:
logger.error(f"Connection test failed: {str(e)}")
sys.exit(1)
finally:
await session.close()
logger.info("Connection test completed successfully")
return
# Start the server
server = TTSServer(
host=config['host'],
port=config['port'],
verify_ssl=config['verify_ssl'],
max_queue_size=config['max_queue_size']
)
await server.start()
try:
# Keep the server running
while True:
await asyncio.sleep(1)
except KeyboardInterrupt:
logger.info("Received shutdown signal")
await server.stop()
logger.info("TTS server stopped gracefully")
except Exception as e:
logger.error(f"Server error: {str(e)}")
await server.stop()
sys.exit(1)
except Exception as e:
logger.error(f"Fatal error: {str(e)}")
sys.exit(1)