LiveCap: Real-Time Vietnamese-English Meeting Captions on AWS
Bilingual meetings, workshops, and classrooms are difficult to follow when a speaker talks quickly, changes between Vietnamese and English, or uses a language that some participants are less comfortable with. Manual note-taking is slow, interrupts attention, and does not provide immediate translation.
Existing meeting platforms may provide captions, but they can require paid plans, platform-specific integration, or storage of full recordings. The project needs a browser-based solution that works independently, displays captions in real time, and minimizes retained conversation data.
LiveCap is a web application that:
Raw audio is not stored. Only finalized transcript text is eligible for export.

The regional deployment uses ap-southeast-1. CloudFront is the global public
entrypoint. The verified live environment uses one Fargate task behind a
multi-AZ ALB; the reviewed target later moves tasks to private subnets and adds
WAF, wake-on-demand, and 0 <-> 1 scaling.
| Service | Role | Reason |
|---|---|---|
| CloudFront | HTTPS/WSS entrypoint and path routing | Global delivery and one stable public endpoint |
| Amazon S3 | Private frontend origin and transcript storage | Durable, encrypted object storage |
| Application Load Balancer | Health checks and WebSocket/API forwarding | Managed routing to healthy Fargate targets |
| Amazon ECS Fargate | Runs the FastAPI container | Managed containers without server administration |
| Amazon ECR | Stores immutable backend images | Reproducible SHA-tagged deployments |
| Amazon Transcribe | Streaming speech-to-text | Managed real-time transcription |
| Amazon Translate | Vietnamese-English translation | Managed translation for finalized text |
| CloudWatch | Logs and operational metrics | Monitoring and troubleshooting |
| IAM | Runtime and deployment permissions | Least-privilege access without embedded keys |
| Phase | Result |
|---|---|
| Requirements and prototype | User flow, WebSocket contract, initial React/FastAPI application |
| Realtime processing | PCM worklet, Transcribe streams, Translate, finalized captions |
| AWS deployment | S3/CloudFront frontend, ECR image, ALB and ECS Fargate backend |
| Hardening | Session guard, reconnect, heartbeat, retention, secret hygiene |
| Infrastructure | Terraform validation, remote-state bootstrap, reviewed target VPC/WAF/cost controls |
| Submission | CI gates, production smoke test, screenshots, bilingual documentation |
| Risk | Mitigation |
|---|---|
| Transcription accuracy varies with noise/accent | Use short clear demos and expose finalized results only |
| WebSocket disconnect interrupts captions | Ping/pong and three retries with 1/2/4-second backoff |
| Managed AI usage causes unexpected cost | 30-minute timeout, global/per-IP limits, no idle AI processing |
| Sensitive conversation data is retained | Do not store raw audio; delete transcript objects after 14 days |
| Single task fails | ALB health checks and ECS replacement; document session interruption |
| Infrastructure drift damages the live demo | Import/reconcile state, review plans, and use blue/green cutover |
/app dashboard load successfully.