Azurely is an AI-powered meeting summarizer that takes audio recordings and returns structured summaries, key points, and action items β all in seconds.
Upload an audio file β get a full transcription + executive summary + action items. Built with Azure Speech Service for transcription and Azure OpenAI for intelligent analysis.
- π§ Multi-format audio support β MP3, WAV, M4A, OGG, MP4
- π Full transcription β powered by Azure Speech SDK with continuous recognition
- π€ AI analysis β executive summary, key points, and action items via GPT-4o-mini
- β‘ Chunk processing β handles long recordings by splitting into 2-minute segments
- π Multilingual β supports es-ES, es-MX, en-US, en-GB, pt-BR
- π Auto cleanup β temporary files deleted after every request
Audio Upload (MP3/WAV/M4A)
β
Format Validation
β
ffmpeg Conversion
(β WAV 16kHz mono)
β
Audio Chunking
(2-min segments)
β
Azure Speech SDK
(Transcription)
β
Azure OpenAI
(GPT-4o-mini Analysis)
β
JSON Response
(Summary + Action Items)
azurely/
βββ backend/
β βββ app/
β β βββ main.py # FastAPI app, CORS, lifespan
β β βββ core/
β β β βββ config.py # pydantic-settings
β β β βββ exceptions.py # custom HTTP exceptions
β β βββ models/
β β β βββ meeting.py # MeetingSummary, ActionItem
β β β βββ requests.py # AnalyzeRequest
β β βββ services/
β β β βββ speech.py # Azure Speech STT
β β β βββ openai_service.py # Azure OpenAI analysis
β β βββ utils/
β β β βββ audio.py # ffmpeg conversion + chunking
β β β βββ cleanup.py # temp file cleanup
β β βββ api/
β β βββ dependencies.py # file validation
β β βββ routes/
β β βββ health.py # GET /health
β β βββ analyze.py # POST /api/analyze
β βββ .env.example
β βββ requirements.txt
β βββ requirements-dev.txt
βββ frontend/
βββ index.html
βββ assets/
βββ css/styles.css
βββ js/
βββ api.js
βββ ui.js
βββ main.js
- Python 3.13+
- ffmpeg installed and in PATH
- Azure account with:
- Azure Speech Service resource
- Azure OpenAI resource with a deployed model
# Clone the repo
git clone https://github.com/AndresRJ18/Azurely.git
cd Azurely/backend
# Create virtual environment
python -m venv venv
source venv/Scripts/activate # Windows
# source venv/bin/activate # Linux/Mac
# Install dependencies
pip install -r requirements-dev.txt
# Configure environment
cp .env.example .env
# Edit .env with your Azure credentials# .env
AZURE_SPEECH_KEY=your_speech_key
AZURE_SPEECH_REGION=eastus
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/openai/v1
AZURE_OPENAI_KEY=your_openai_key
AZURE_OPENAI_DEPLOYMENT=gpt-4o-mini
MAX_AUDIO_SIZE_MB=25
TEMP_DIR=/tmp/azurelypython -m uvicorn app.main:app --reload --port 8000API available at http://localhost:8000
Swagger UI at http://localhost:8000/docs
Verifica conectividad con Azure Speech y Azure OpenAI.
{
"status": "ok",
"service": "Azurely API",
"azure_speech": "connected",
"azure_openai": "connected"
}Analiza un archivo de audio y retorna el resumen.
Request β multipart/form-data
| Field | Type | Required | Default |
|---|---|---|---|
| file | audio file | β | β |
| language | string (BCP-47) | β | es-ES |
Response
{
"summary": "Resumen ejecutivo de la reuniΓ³n...",
"key_points": [
"Punto clave 1",
"Punto clave 2"
],
"action_items": [
{
"task": "Enviar el plan de medios",
"assignee": "Carlos",
"deadline": "viernes"
}
],
"transcription": "TranscripciΓ³n completa del audio...",
"language_detected": "es-ES",
"duration_estimate": "5 minutos"
}Supported languages
| Code | Language |
|---|---|
es-ES |
EspaΓ±ol (EspaΓ±a) |
es-MX |
EspaΓ±ol (MΓ©xico) |
en-US |
English (US) |
en-GB |
English (UK) |
pt-BR |
PortuguΓͺs (Brasil) |
| Layer | Technology |
|---|---|
| Backend framework | FastAPI |
| Speech-to-Text | Azure Speech SDK |
| AI Analysis | Azure OpenAI (GPT-4o-mini) |
| Audio processing | ffmpeg + ffmpeg-python |
| Config management | pydantic-settings |
| Async file I/O | aiofiles |
Built at a hackathon by a team of 4 Informatics Engineering students.
| Role | Scope |
|---|---|
| Backend | FastAPI, Azure services, audio pipeline |
| Frontend | UI, file upload, results rendering |
| DevOps | Docker, Azure Container Apps deployment |
MIT License β see LICENSE for details.