2.2 KiB
2.2 KiB
Component Interfaces
(This document will define the interfaces between different components of the system, especially between the frontend and backend.)
Backend API (FastAPI)
(To be detailed. Examples below)
/api/tts/generate_single
(POST)
- Request Body:
{ "text": "string", "speaker_id": "string", "temperature": "float (optional)", "length_penalty": "float (optional)" }
- Response Body (Success):
{ "audio_url": "string (URL to the generated audio file)", "duration_ms": "integer" }
- Response Body (Error):
{ "detail": "string (error message)" }
/api/tts/generate_dialog
(POST)
- Request Body:
{ "dialog_lines": [ { "type": "speech", // or "silence" "speaker_id": "string (required if type is speech)", "text": "string (required if type is speech)", "duration_s": "float (required if type is silence)" } ], "output_base_name": "string (optional)" }
- Response Body (Success):
{ "dialog_audio_url": "string (URL to the concatenated dialog audio file)", "individual_files_zip_url": "string (URL to zip of individual lines)", "total_duration_ms": "integer" }
/api/speakers
(GET)
- Response Body (Success):
[ { "id": "string", "name": "string", "sample_url": "string (optional)" } ]
/api/speakers
(POST)
- Request Body: (Multipart form-data)
name
: "string"audio_sample
: file (WAV)
- Response Body (Success):
{ "id": "string", "name": "string", "message": "Speaker added successfully" }
Frontend Components (Vanilla JS)
(To be detailed as frontend development progresses.)
- DialogLine Component: Manages input for a single line of dialog (speaker, text).
- AudioPlayer Component: Handles playback of generated audio.
- ProjectManager Component: Manages overall project state, dialog lines, and interaction with the backend.