Project for AZUBI-Generation Ghana SAA cohort3
# Serverless Text-to-Speech Platform
A secure, scalable serverless TTS platform built on AWS that transforms text into high-quality audio using Amazon Polly.
## 🏗️ Architecture
The platform uses a fully serverless architecture with these core components:
- **Frontend**: React SPA hosted on AWS Amplify
- **API**: HTTP API Gateway with Lambda backend
- **Processing**: Python Lambda function integrating with Amazon Polly
- **Storage**: Private S3 bucket with time-limited pre-signed URLs
- **Security**: IAM roles with least privilege access
### Data Flow
1. **User Input** → React UI captures text and voice preferences
2. **API Request** → HTTP API validates and routes to Lambda
3. **Speech Synthesis** → Lambda calls Polly for audio generation
4. **Secure Storage** → Audio saved to private S3 with organized prefixes
5. **Temporary Access** → Pre-signed URL generated with configurable TTL
6. **User Download** → Direct S3 access via time-limited secure link
## 🚀 Quick Start
### Prerequisites
- AWS CLI configured
- Terraform >= 1.5.0
- Node.js >= 18
- Git repository access
### Deployment
1. **Deploy Infrastructure**
```bash
cd infra
terraform init
terraform apply
```
2. **Deploy Frontend**
```bash
cd TTS-web
npm install
npm run build
# Connect to Amplify via console or CLI
```
3. **Test API**
```bash
# Get available voices
curl
your-api-id.execute-api.reg…
# Synthesize speech
curl -X POST
your-api-id.execute-api.reg… \
-H "Content-Type: application/json" \
-d '{"text":"Hello world","voice":"Joanna","engine":"neural"}'
```
## 📁 Project Structure
```
Project-Azubi/
├── documents/ # Documentation and images
│ └── images/
│ └── architecture-diagrams.svg
├── backend/ # Lambda function code
│ ├── lambda_function.py
│ ├── requirements.txt
│ └── tests/
├── infra/ # Terraform infrastructure
│ ├── lambda/ # Copy of lambda …