# Code Structure *(This document will describe the organization of the codebase as it evolves.)* ## Current (Gradio-based - to be migrated) - `gradio_app.py`: Main application logic for the Gradio UI. - `requirements.txt`: Python dependencies. - `speaker_samples/`: Directory for speaker audio samples. - `speakers.yaml`: Configuration for speakers. - `single_output/`: Output directory for single utterance TTS. - `dialog_output/`: Output directory for dialog TTS. ## Planned (FastAPI + Vanilla JS) ### Backend (FastAPI - Python) - `main.py`: FastAPI application entry point, router setup. - `api/`: Directory for API endpoint modules (e.g., `tts_routes.py`, `speaker_routes.py`). - `core/`: Core logic (e.g., TTS processing, dialog assembly, file management). - `models/`: Pydantic models for request/response validation. - `services/`: Business logic services (e.g., `TTSService`, `DialogService`). - `static/` (or served via CDN): For frontend files if not using a separate frontend server during development. ### Frontend (Vanilla JavaScript) - `index.html`: Main HTML file. - `css/`: Stylesheets. - `style.css` - `js/`: JavaScript files. - `app.js`: Main application logic. - `api.js`: Functions for interacting with the FastAPI backend. - `uiComponents.js`: Reusable UI components (e.g., DialogLine, AudioPlayer). - `state.js`: Frontend state management (if needed). - `assets/`: Static assets like images or icons.