Skip to main content
A
Docs

Transcription

Upload meeting audio for AI-powered transcription with speaker diarization and timestamp segments.

Overview

Minutes uses Whisper Large V3 via Groq to transcribe meeting audio into structured, speaker-attributed text. Each transcript is divided into time-stamped segments with speaker labels, enabling precise attribution and searchability.

Upload Workflow

Transcription follows a two-step process:

  1. Create the meeting with metadata (title, type, participants, language)
  2. Upload the audio file to trigger transcription

Step 1: Create the Meeting

curl -X POST http://localhost:8013/api/v1/meetings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "title": "Ministry AI Strategy Discussion",
    "meeting_type": "committee",
    "language": "ar",
    "participants": [
      "Dr. Ahmed Al Mansoori",
      "Eng. Fatima Al Hashimi",
      "Mohammed Al Zaabi"
    ],
    "scheduled_at": "2024-01-15T14:00:00Z"
  }'

Meeting Types:

TypeDescription
cabinetCabinet-level sessions with formal decisions
committeeCross-departmental committee meetings
reviewPerformance and progress reviews
standupDaily/weekly team standups
boardBoard of directors meetings
workshopWorking sessions and brainstorming
generalGeneral meetings not fitting other categories

Step 2: Upload Audio

curl -X POST http://localhost:8013/api/v1/meetings/{meeting_id}/upload \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@committee_meeting.mp3"

The upload triggers automatic transcription. The meeting status transitions from created to transcribing to transcribed.

Transcript Structure

Retrieve the transcript after processing:

curl http://localhost:8013/api/v1/meetings/{meeting_id}/transcript \
  -H "Authorization: Bearer $TOKEN"

Response:

{
  "meeting_id": "mtg-a1b2c3",
  "segments": [
    {
      "speaker": "Speaker 1",
      "start": 0.0,
      "end": 12.5,
      "text": "بسم الله الرحمن الرحيم، نبدأ اجتماع اليوم بمناقشة استراتيجية الذكاء الاصطناعي"
    },
    {
      "speaker": "Speaker 2",
      "start": 13.0,
      "end": 28.3,
      "text": "شكراً، أود أن أبدأ بعرض التقدم المحرز في المرحلة الأولى"
    }
  ],
  "full_text": "...",
  "language": "ar",
  "duration": 3540.0
}

Segment Fields

FieldTypeDescription
speakerstringSpeaker identifier (Speaker 1, Speaker 2, etc.)
startfloatStart timestamp in seconds
endfloatEnd timestamp in seconds
textstringTranscribed text for this segment

Speaker Diarization

Minutes identifies distinct speakers in the audio and labels segments accordingly. When participant names are provided in the meeting creation, the system maps speaker labels to names based on speaking patterns.

Diarization works best with:

  • Clear audio with minimal background noise
  • Distinct speakers with minimal crosstalk
  • Meetings with 2-10 participants

Language Support

Minutes supports three language modes:

ModeDescription
arArabic transcription (MSA and Gulf dialect)
enEnglish transcription
autoAutomatic language detection from audio content

Bilingual Meetings

For meetings that mix Arabic and English, use auto mode. Whisper detects language transitions and transcribes each segment in the appropriate language.

Audio Requirements

ConstraintValue
Maximum file size50 MB
Supported formatsmp3, wav, m4a, ogg, webm
Recommended sample rate16 kHz or higher
Recommended channelsMono or stereo

Higher quality audio produces more accurate transcriptions. For best results, use a dedicated meeting recording device or conferencing system with good microphone placement.