Skip to content

games195/audio-transcription-microservice

Repository files navigation

Audio Transcription Microservice

A scalable microservice architecture for audio transcription built with Python, Flask, and Kubernetes. This system allows users to upload audio files, which are then automatically transcribed to text using OpenAI Whisper model, with email notifications sent upon completion.

flowchart TD
    Client((User))
    Gateway[Gateway Service]
    Auth[Auth Service]
    Transcription[Transcription Service]
    Notification[Notification Service]
    MongoDB[(MongoDB)]
    MySQL[(MySQL)]
    RabbitMQ[(RabbitMQ)]

    Client -->|Upload/Download| Gateway
    Gateway -->|Auth Request| Auth
    Gateway -->|Send Audio| RabbitMQ
    Auth -->|User Data| MySQL
    RabbitMQ -->|Audio Task| Transcription
    Transcription -->|Save Transcription| MongoDB
    Transcription -->|Notify| RabbitMQ
    Notification -->|Send Email| Client
    Gateway -->|Get Transcription| MongoDB
    RabbitMQ -->|Send Notify| Notification
Loading

🏗️ Architecture

This project implements a microservice architecture with the following components:

Core Services

  • Gateway Service - API gateway handling client requests, authentication, file uploads/downloads
  • Auth Service - User authentication and JWT token management
  • Transcription Service - Audio-to-text transcription using AI models
  • Notification Service - Email notifications for completed transcriptions

Infrastructure

  • MongoDB - Document storage for audio files and transcription results
  • RabbitMQ - Message queue for asynchronous processing
  • MySQL - User authentication data storage
  • Kubernetes - Container orchestration and deployment

🔄 Workflow

  1. Upload: User uploads audio file through the Gateway API
  2. Queue: Audio file queued in RabbitMQ for processing
  3. Transcribe: Transcription service processes audio and generates text
  4. Store: Transcribed text saved to MongoDB
  5. Notify: User receives email notification when transcription is complete
  6. Download: User can download transcription results via API

About

A scalable microservice architecture for audio transcription built with Python, Flask, and Kubernetes.

Topics

Resources

Stars

Watchers

Forks