Logo Lanfrica

Centre-for-Open-Societal-Systems/oan-transcribe-service

Domain:

natural language processing

Record type:

software
Creator:
Cen
Host:
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 …