Fast, multilingual speech-to-text API powered by OmniASR with automatic GPU acceleration. Production-ready FastAPI service with Docker support for English, Amharic, and extensible language support.
# Transcribe Service
> Fast, multilingual speech-to-text API powered by OmniASR with automatic GPU acceleration
A production-ready FastAPI service for audio transcription supporting multiple languages with flexible provider options.
## ✨ Features
- 🚀 **High Performance** - GPU acceleration with automatic CUDA detection
- 🌍 **Multilingual** - Supports English, Amharic, and easily extensible
- 🔌 **Flexible Providers** - OmniASR (default), Azure Speech, AWS Transcribe support
- 🐳 **Docker Ready** - Production containerization with GPU support
- ⚡ **Fast API** - Built on FastAPI with async support
- � **Environment-based Configuration** - Easy deployment management
## 🚀 Quick Start
### Docker (Recommended)
```bash
# Start the service
docker compose up -d
# View logs
docker logs -f transcribe-service
```
API available at `
localhost`
> See DOCKER_SETUP.md for detailed Docker configuration including GPU support.
### Manual Installation
```bash
pip install -r requirements.txt
python main.py
```
## 📡 API Usage
### Transcribe Audio
```bash
POST /api/transcribe/
```
**Request:**
```json
{
"audio_content": " ",
"lang": "en",
"session_id": "optional-id"
}
```
**Response:**
```json
{
"status": "success",
"text": "Transcribed text here",
"session_id": "session-id"
}
```
### Supported Languages
- `en` / `eng` - English
- `am` / `amh` - Amharic
- Extensible - Add more in configuration
### Example
**Python:**
```python
import requests
import base64
with open("audio.wav", "rb") as f:
audio_b64 = base64.b64encode(f.read()).decode()
response = requests.post(
"
localhost",
json={"audio_content": audio_b64, "lang": "en"}
)
print(response.json()["text"])
```
**cURL:**
```bash
curl -X POST "
localhost" \
-H "Content-Type: application/json" \
-d '{"audio_content": "'$(base64 -w 0 audio.wav)'", "lang": "en"}'
```
## ⚙️ Configuration
### Transcription Providers
The service uses a **provider patte …