# Ethiopian Orthodox Church Translator
Real-time Amharic to English translation service for Ethiopian Orthodox Church services.
Non-Amharic speaking congregation members can follow along during live services by capturing audio on their devices, which is processed through a secure backend and returned as live English translations.
---
## How It Works
```
[User's Phone] → captures audio → [Backend Server] → [Whisper STT] → Amharic Text
↓
[Azure Translator] → English Text
↓
[Broadcasts back to user]
```
Each congregation member captures audio on their own device. The audio is sent to the backend server, which handles all API calls securely. Users never see or interact with any API keys.
---
## Tech Stack
| Layer | Technology |
|-------|------------|
| Backend | Node.js, Express |
| Real-time | WebSockets (ws) |
| Speech-to-Text | OpenAI Whisper API |
| Translation | Azure Translator API |
| Audio Capture | Web Audio API / MediaRecorder |
| Tunneling (Local Dev) | ngrok |
---
## Prerequisites
- Node.js v16 or higher
- npm v8 or higher
- ngrok (for local development)
- OpenAI API key with credit (Sign up)
- Azure Translator API key (Sign up)
---
## Setup
### 1. Clone the Repository
```bash
git clone
github.com
cd ethiopian-church-translator
```
### 2. Install Dependencies
```bash
npm install
```
### 3. Configure Environment Variables
Copy the example env file and fill in your API keys:
```bash
cp .env.example .env
```
Open `.env` and replace the placeholder values:
```env
OPENAI_API_KEY=sk-proj-your-key-here
AZURE_TRANSLATOR_KEY=your-azure-key-here
AZURE_REGION=eastus
PORT=3000
```
**Where to get your keys:**
- **OpenAI API Key:**
platform.openai.com
- **Azure Translator Key:**
portal.azure.com → Your Translator resource → Keys and Endpoint
### 4. Start the Server
```bash
npm start
```
You should see:
```
╔════════════════════════════════════════════════════════╗
║ …