How azure-samples/sonic-brief works
Sonic Brief is an audio transcription and reporting application: users upload recordings, asynchronous processing produces transcripts and summaries, and users review or download results. The repository separates a React frontend, FastAPI backend, and Azure Functions processing service. Prompt customization and authentication are additional product capabilities. Several backend and processing relationships are documented in the README; the excerpts do not establish every internal call, so unverified wiring is omitted.
Main entry points: main.tsx Web UI · function_app.py Blob-triggered worker · main.py FastAPI application · upload.py Upload and jobs
Components 23
Web application
- Web UI
frontend_app/src/main.tsx - Audio upload
frontend_app/src/components/dashboard/audio-upload-form.tsx - Recording views
frontend_app/src/components/audio-recordings/AudioRecordingsCombined.tsx - Prompt management
frontend_app/src/components/prompt-management/content.tsx - Login and register
frontend_app/src/components/auth-form.tsx - API client
frontend_app/src/lib/api.ts
Backend API
- FastAPI application
backend_app/app/main.py - Authentication routes
backend_app/app/routers/auth.py - Upload and jobs
backend_app/app/routers/upload.py - Prompt routes
backend_app/app/routers/prompts.py - Blob storage service
backend_app/app/services/storage_service.py
Audio processing
- Blob-triggered worker
az-func-audio/function_app.py - Audio retrieval
az-func-audio/azure_storage.py - Speech transcription
az-func-audio/transcription_service.py - Summary analysis
az-func-audio/analysis_service.py - Result storage
az-func-audio/storage_service.py - Job and prompt data
az-func-audio/cosmos_service.py
Cloud data services
- Recording blobs
- Transcript and report blobs
- Cosmos DB
- Azure AI Speech
- Azure OpenAI
Other components
- User
Connections 27
- User → Web UI: uses
README.md - Web UI → Audio upload: offers upload
README.md - Web UI → Recording views: shows recordings
README.md - Web UI → Prompt management: customizes prompts
README.md - Web UI → Login and register: supports login
README.md - Web UI → API client: makes API calls
- FastAPI application → Authentication routes: registers routes
backend_app/app/main.py - FastAPI application → Upload and jobs: registers routes
backend_app/app/main.py - FastAPI application → Prompt routes: registers routes
backend_app/app/main.py - Authentication routes → Cosmos DB: reads and writes users
README.md - Upload and jobs → Blob storage service: stores recordings
backend_app/app/routers/upload.py - Upload and jobs → Cosmos DB: reads job data
README.md - Prompt routes → Cosmos DB: manages prompts
README.md - User → Audio upload: uploads audio
README.md - Blob storage service → Recording blobs: stores recording
README.md - Recording blobs → Blob-triggered worker: triggers processing
README.md - Blob-triggered worker → Audio retrieval: gets audio
README.md - Blob-triggered worker → Speech transcription: submits transcription
README.md - Speech transcription → Azure AI Speech: transcribes audio
README.md - Blob-triggered worker → Job and prompt data: updates job state
README.md - Job and prompt data → Cosmos DB: reads prompts and writes status
README.md - Blob-triggered worker → Summary analysis: summarizes transcript
README.md - Summary analysis → Azure OpenAI: requests summary
README.md - Blob-triggered worker → Result storage: stores outputs
README.md - Result storage → Transcript and report blobs: writes transcript and report
README.md - Recording views → API client: requests job results
- User → Recording views: reviews reports
README.md